私はUnixコマンドラインで作業しています。 2つのファイルがあります。私が欲しいcat file1.txt
とgrep
出力file2.txt
ファイル1.txt
123A
223A
143A
153A
183A
123J
123P
ファイル2.txt:
123A (TYU)
223A (RUT)
143A (EWRW) 4
153A (TGBW) 89 ()
183A (23) YHYT
123J ikik 780
123P haja 123
XRQE haja 123
XRQE haja 909
最後の2行はfile2.txt
存在しません。file1.txt
似たようなことをしようとしています。
head file1.txt | **and ??**
grep file2.txt
xargs
を使用して保存しようとしましたが、$variable
シェルがフリーズまたは機能しません。
予想出力:編集済み:
123A (TYU)
223A (RUT)
143A (EWRW) 4
153A (TGBW) 89 ()
183A (23) YHYT
123J ikik 780
123P haja 123
答え1
?をfile2.txt
使用して、文字列に存在する文字列を検索したいとします。file1.txt
その場合は、スイッチを使用してこれを行うことができgrep
ます-f
。
-f FILE, --file=FILE
1行に1つずつFILEからパターンを取得します。空のファイルにはパターンが0個含まれているため、一致するものはありません。 (-f は POSIX で指定されます.)
したがって、次のことを試してください。
$ grep -f file1.txt file2.txt
123A (TYU)
223A (RUT)
143A (EWRW) 4
153A (TGBW) 89 ()
183A (23) YHYT
123J ikik 780
123P haja 123
file1.txt の一部を渡します。
一方、次の文字列の一部のみを検索file1.txt
したい場合プロセスの交換サブセットを動的に生成し、file1.txt
それを一時ファイルに渡すスイッチ。grep
-f
$ grep -f <(head -5 file1.txt) file2.txt
123A (TYU)
223A (RUT)
143A (EWRW) 4
153A (TGBW) 89 ()
183A (23) YHYT
その後、最初の5行を取得し、シンボルを介して一時file1.txt
ファイルに 。<(..)
grep