나는 다음 명령을 생각해 냈습니다.grep 'rtl' reg_list.txt | grep -E -o -n "id_\w+" reg_list.txt
아이디어는 먼저 rtl 콘텐츠가 포함된 줄을 grep한 다음 id_ content로 시작하는 단어에 대해서만 grep하는 것입니다. 데이터는 테이블에 있으며 첫 번째 열에는 rtl이 포함되고 두 번째 열에는 id_data가 포함됩니다.
문제는 첫 번째 grep의 결과가 두 번째 grep으로 전달되지 않는다는 것입니다.
reg_list.txt는 행, 열과 행이 있는 테이블과 같은 다양한 유형의 데이터로 구성됩니다.
답변1
첫 번째 결과grep
예두 번째 항목에 전달되었지만 grep
두 번째 항목에 grep
파일 이름을 지정했기 때문에 읽지 않습니다(대신 파일에서 읽음).
대신에:
grep 'rtl' reg_list.txt | grep -E -o -n 'id_[[:alnum:]]+'
\w
또한 그 이후로 PCRE 정규식으로 [[:alnum:]]
변경 했습니다 . \w
당신 grep
이 GNU라면 grep
, 그것을 유지 \w
하고 사용할 수 있습니다 grep -P
.