如何使用 Linux shell 查找文件的多个单词?
我有
text
example
text
example
text
example
text
example
我需要
text
example1
text
Example2
text
example3
text
example4
也就是说,先定位单词,然后定位数字。
答案1
我不完全理解你的问题。但是,提供您的输入示例和输出示例,您可以执行类似的操作(只是一个方向):
名为“example”的输入文件如下:
text
example
text
example
text
example
text
example
因此,假设“文本”可以是一行中的任何内容,并且“示例”只是“示例”(编辑我的代码以满足您的需求);您可以将您的输出要求与以下语句相匹配(但不是太详尽):
hmontoliu@ulises:/tmp$ awk 'BEGIN {c=0} {if ( $0 ~ /example/ ) {c+=1; print $0c} else print $0}' example
text
example1
text
example2
text
example3
text
example4
华泰
答案2
据我从示例中了解到,您想要打印行以及该行号之后的行。
要打印行号和行,您可以使用cat
或nl
:
$ cat -n test.txt
1 text example
2 text example
3 text example
4 text example
$ nl test.txt
1 text example
2 text example
3 text example
4 text example
但是不可能在行后打印数字cat
,nl
因此您可以使用awk
:
$ awk '{print $0 "\t" NR}' test.txt
text example 1
text example 2
text example 3
text example 4