grep
必要なテキストを検索するには、指定したパターンに一致する行を含む行を表示します。
例えば、
# grep -r ".*Linux" *
path0/output.txt:I hope you enjoyed working on Linux.
path1/output1.txt:Welcome to Linux.
path2/output2.txt:I hope you will have fun with Linux.
次に、ファイルを編集したいので、path2/output2.txt
を入力しますvim path2/output2.txt
。
しかし、私はこれが効率的なアプローチだとは思わない。
後続のパスをコピーする方法はgrep
?
ベストアンサー1
これらはすべて安全な方法Linuxですべてのファイルを見つけます(小文字と大文字)。
xargs -a <(grep -rlZi Linux *) -0 vim
grep -rlZi Linux *| xargs -0 sh -c 'vim "$@" < /dev/tty' vim
grep -rlZi Linux *| xargs -0 vim # you need to run reset after this command
GNU xargsとBSD xargsには違いがあるため、MacOSXでは動作しない可能性があります。
- NULLで区切られたファイル名の-Zおよび-0オプション
- -l は一致するファイルのファイル名を出力するために使用されます。
- -i は小文字と大文字と一致します。
- -o on bsd xargsは、「sh -c」部分と同じことを行います。