2

我试图在文件some_file中找到选项卡的出现,并用前导行号打印那些行。 grep -nP "\t" some_file对我来说效果很好,但我想要 sed 或 awk 等效命令。

4

2 回答 2

3

模仿:grep -nP "\t" file.txt

这是一种使用方法GNU awk

awk '/\t/ { print NR ":" $0 }' file.txt

这是一种使用方法GNU sed

< file.txt sed -n '/\t/{ =;p }' | sed '{ N;s/\n/:/ }'
于 2012-10-12T05:40:36.477 回答
2

好吧,你总是可以在 sed 中做到这一点:

cat -n test.txt | sed -n "/\t/p"

不幸的是,sed 只能用新行将行号打印到标准输出,因此无论如何,需要多个命令。上面的一个更冗长(不必要的)版本,但一个只使用 sed,将是:

sed = test.txt | sed -n "N;s/\n/ /;/\t/p"

但我喜欢cat多一点的。猫很好。

于 2012-10-12T05:36:23.237 回答