我想使用grep命令为我正在搜索的字符串打印一个行号。但是,当我使用命令grep -n时,它会用冒号打印行号:旁边。是否可以使用相同的grep -n命令打印行号,并在行号后面加上:冒号?
$ grep -n 'Captain' sometextfile.txt
3: Captain America我想把它印出来,
3 Captain America(没有“:”)
有什么建议吗?
发布于 2014-12-10 17:56:49
您可以使用sed和grep来实现这一点。
grep -n 'Captain' sometextfile.txt | sed 's/:/ /'
这个sed命令找到模式:并用(空格)替换它。
通用语法- sed 's/find/replace/'
这种方法将只取代第一次出现的:在每一行。因此,即使文本文件中的一行包含:,它也不会受到影响。
发布于 2014-12-10 18:06:29
如果您只想删除冒号(而不是用空格替换它),可以通过tr传输grep语句的输出。你的命令应该是:
grep -n 'Captain' sometextfile.txt | tr -d ':'
如果要用空格替换冒号,可以使用:
grep -n 'Captain' sometextfile.txt | tr ':' ' '
不过,就像杂音指出的那样,这样做可以去掉任何冒号。
发布于 2014-12-10 18:00:54
你能试试这个命令对你有帮助吗?
awk '/Captain America/ {printf "%s %s\n", NR, $0}'https://askubuntu.com/questions/558922
复制相似问题