如何在bash shell中获取路径、行索引和行内容?

如何在bash shell中获取路径、行索引和行内容?

我有一个文件,我想搜索该文件中的一些文本并导出文件路径、iIsearched 内容的行索引和行内容。

我使用这个命令:

grep -rnw 'path-file' -e 'patter'

但结果是:

tree.sh:1:abc xyz

如何获取表格中的每一行:

tree.sh - 1 - abc xyz

答案1

假设你的grep支持--color

grep --color=always -rnw -e 'pattern' 'path-file' | sed -e 's/:/ - /;s// - /'

答案2

您可以使用 awk 解析它:

$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $1}'
tree.sh
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $2}'
1
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $3}'
abc
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $4}'
xyz

由于原始问题已被修改,我添加了 sed 选项:

$ echo "tree.sh:1:abc xyz" | sed -e "s/:/ - /g"
tree.sh - 1 - abc xyz

相关内容