私はgrep
ファイル内で一致するパターンを検索し、出力からファイル名をコピーするために使用します。この作業をあまりにも頻繁にしてみると結局:
コピーもするようになりそうです。それでは、最初に一致する半列またはファイル名が終わる前に2つのスペースを追加できますか?
$ grep -Hrn -e "zorro" --color=always --exclude-dir=dir -I -F . | \
cut -c 11- | awk '$0="\033[33;35m"$0' | tr -s '[:space:]'
doo.tex:1:zorro alper alper alper skfjsdlkfj dslfj dslkj
希望の出力:
doo.tex :1:zorro alper alper alper skfjsdlkfj dslfj dslkj
^
<two space added>
ベストアンサー1
それでも私の最初は行きましたアッ
awk -F: -vOFS=: '{$1 = $1 " "; print}'
しかし、私はそれが必要以上に物事が多いと思います。分裂して隊列に再加入することです。
これsed選択肢はとてもきれいです
sed 's/:/ :/'
変える最初スペース2つとコロンがあるコロンです。
コロンの会話を含むファイル名関連:
GNU grep のマニュアルページをお読みください。-Z
オプションの使用:「通常、ファイル名の後に続く文字の代わりに0バイト(ASCII NUL文字)を出力します。」
だから:
# .......v
grep -HrnZ -e "zorro" --color=always --exclude-dir=dir -I -F . | \
perl -pe 's/\0/ :/'