ファイルがありますが、ファイルからいくつかのテキストを検索し、ファイルパス、i検索されたコンテンツの行インデックス、および行コンテンツをエクスポートしたいと思います。
私は次のコマンドを使用します。
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