我正在试图find一个文件some_file标签的出现,并打印这些行与领先的行号。 grep -nP“\ t”some_file对我来说效果不错,但是我想要sed或者awk相同的命令。
要模拟: 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/:/ }'
那么,你总是可以在sed中做到这一点:
cat -n test.txt | sed -n "/\t/p"
不幸的是,sed只能用新行打印行号,所以在任何情况下都需要多个命令。 以上更长的(不必要的)版本,但只使用sed,将是:
sed = test.txt | sed -n "N;s/\n/ /;/\t/p"
但我更喜欢cat
的一个。 猫是很好的。