"input_loan_msisdn.txt" 파일에 있는 전화번호 목록(많은)을 내 스크립트에 대한 입력으로 사용하고(파일의 전화번호는 한 줄씩 나열되어 있음) 내 출력을 grep하는 키워드로 사용하고 싶습니다. 다른 파일 yemmy_snap*
입력 파일 예:
2348093700000
2348180000000
2348090000000
2348097000000
2347050000000
2348090000000
2348170000000
아래 내 시도를 참조하십시오.
#!/bin/bash
for msisdn in $(cat input_loan_msisdn.txt); do
cd /onip/cdr/output/snapshot/yemmy/backup
zgrep $msisdn yemmy_snap* | \
awk -F "|" '{print $1 " " $14 " " $4 }' ocs_snapshot*.unl \
> /onip/app/cbpapp/RETURN_LOAN/output_loan_msisdn.txt;
done
답변1
스위치가 있으므로 루프는 while
불필요합니다 .grep
-f
grep -f input_loan_msisdn.txt yemmy_snap* | <do other stuff with the data>
-f
전달 된 파일이어느빈 줄을 긋고 grep
맞춰라모든라인, (다음과 같이 작동합니다 cat
). 전달된 파일을 -f
미리 편집할 수 없다고 가정하면 런타임에 다음과 같이 수정할 수 있습니다.
grep '.' input_loan_msisdn.txt | \
grep -f - yemmy_snap* | <do other stuff with the data>
에서 man grep
:
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. If this option is used
multiple times or is combined with the -e (--regexp) option,
search for all patterns given. The empty file contains zero
patterns, and therefore matches nothing.