特定のディレクトリ(main_directory)に24個のディレクトリがあります。各24のディレクトリには、DATA.txtという名前のテキストファイルがあります。
Grepコマンドを使用して、各テキストファイルの特定のパターンを抽出する必要があります。
2* x = 3800689.6402 y = 882077.3636 z = 5028791.2953
2* x =
部分は、すべてのDATA.txtで一定です。他の数値は可変です。 DATA.txtごとに上記の行を抽出し、別のテキストファイルに保存する必要があります。このプロセスに使用できるスクリプトはどれですか?
grep
を使用して再帰的に検索するには、-R
オプションを使用します。
正確な文字列を検索するには、-F
を使用して、2*
が正規表現として扱われないようにします。
特定のファイル名のみを検索するには、--include
オプションを使用します。組み合わせ:
grep -FR --include=DATA.txt '2* x' main_directory > another_text_file
ターゲットファイルの名前がわかっているので、次のこともできます。
grep '^2\* x' */DATA.txt > newfile
または、awk
で:
awk '^/2\* x/' */DATA.txt > newfile
そしてPerl:
Perl -ne 'print if /2\* x/' */DATA.txt > newfile
一般的方法:
grep -r <pattern>
または
特定のアプローチ:
find -name <file patterns which you want to find> | xargs grep <pattern you looking for>