我有一个shell脚本,可以在这样的文件夹中打印appimage文件名
#! /bin/bash
Dir="$HOME/Applications/"
Dir2="$HOME/Downloads/"
cd -P "$Dir"
for f in *.AppImage; do
z=$(echo $f | head -n1 | awk '{print $1;}')
echo $z
done
现在输出如下:
Altus-4.8.5-x86_64.AppImage
GitHubDesktop-linux-3.2.0-linux1.Ap
如果我在Mac OS X 10.7.2的终端应用程序中执行以下命令:
$ cat test.txt | od -c
我得到了
0000000 t e s t 1 \n t e s t 2
0000013
这就是我的test.txt文件的真正内容。好的。
但是如果我执行sed,它会在每个文件中添加新的一行。
$ sed 's/e/X/g' test.txt | od -c
0000000 t X s t 1 \n t X s t 2 \n
我有一个文本文件test.txt
It has list as follows
Profile Roy
City: New York
Age: 78_months
Sex: Male
Profile Smith
City: Texas
Age: 56_months
Sex: Male
我想要的是罗伊和史密斯等的.所以它应该输出为
78_months New York
56_months Texas
到目前为止,我尝试过的都没有用
grep -l 'Age:|City:' test.txt >> output txt
我的文件只是一行:
$ cat employee-one-line.txt
101,John Doe:102,Jason Smith:103,Raj Reddy:104,Anand Ram:105,Jane Miller
$
但是执行以下awk脚本后,它将打印一个多余的空行:
$ awk -F, 'BEGIN{ RS=":" } {print $2}' employee-one-line.txt
John Doe
Jason Smith
Raj Reddy
Anand Ram
Jane Miller
$
为什么结尾有空白行?
我有文件:
A cars1 black NY
A cars2 W
A cars3 black SP
我想将最后一列转换为新行并添加>符号:
A cars1 black
>NY
A cars2
>W
A cars3 black
>SP
我尝试了下面的命令,但是它工作得不太好,可能是因为第三列的值丢失了:
awk '{print $1,$2,$3,"\n"$4}'
我有一个单词列表,我使用排序命令对这些单词进行了排序,然后使用uniq -D打印了所有重复的单词。输出文件foo.txt如下:
always
always
bat
bat
boot
boot
boot
hi
hi
然后,我尝试在脚本中使用以下命令,通过tr命令读取该文件。
它不是很有效,输出看起来和上面的一样。
这就是我到目前为止所知道的:
cat foo.txt | tr -s '\n'
然而,输出看起来是一样的。我的目标是输出为:
always always
bat bat
boot boot boot
hi hi
我试图在每一行之后添加行text += num.toString(16);,使用sed。
我的方法是:Replace every new line with a new line, plus text += num.toString(16);。这就是:
sed 's/\
/\
text \+= num\.toString\(16\);/g'
但我做不到。我从苏德那里得到了unterminated substitute pattern。
这里怎么了?
我用的是BSD系统。
我一直试图寻找正确的方法来实现这一点,从stdin和打印到stdout。我知道我可以使用挤压(-s)删除同一类型的多行,但我希望保留两个换行符来代替多行,而不仅仅是一行。我也研究过使用uniq,但不知道如何使用。我知道折叠也可以使用,但我找不到关于我想要的折叠版本的任何信息,折叠(1p)。
所以,如果我把文本作为输入:
A B C D
B C D E
我希望输出结果是
A B C D
B C D E
我正在使用awk处理一些程序文件,删除调试部分。这些文件中有些没有尾随换行符。我想让awk用换行符逐行打印文件,但如果不存在,则不要在文件末尾添加额外的换行符。
例如。
a
b // no newline after the "b"
会变成这样:
a
b<NEWLINE>
我不想添加这个换行符的原因是我试图使用cmp --silent $file $file_without_debug_sections来确定是使用原始文件还是新文件。我之所以关心这个问题,是因为我试图限制编译器输出中具有调试扩展名的文件的数量。只有使用非调试版本,如果它是不同的,也说明了哪些文件是由
cat -ev ./test.txt
1 line with "carriage return \r" and "new line \n" ^M$
2 line only with "new line \n" $
3 ^M$
4 line with "carriage return \r" and "new line \n" ^M$
5 line with "carriage return \r" and "new line \n" ^M$
6 line only