저는 Unix 명령줄에서 작업하고 있습니다. 두 개의 파일이 있습니다. 내가 원 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
한 줄에 하나씩 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