![cut 명령에서 발견된 모든 하위 문자열을 표시하는 방법](https://linux55.com/image/163168/cut%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%20%EB%B0%9C%EA%B2%AC%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%ED%95%98%EC%9C%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
grep 명령이 있습니다
grep -o 'ITEM+[^ ]*' "file.txt"
반환된 문자열은 다음과 같습니다
ITEM+12345678::hashtext_20191030::ITEM+87654321::hashmap_20191030::ITEM+12348765::hashvalue_20191001
따라서 잘라내기 명령을 추가하면
grep -o 'ITEM+[^ ]*' "file.txt" | cut -c 5-12
결과는 하나만 얻습니다.
12345678
어떻게 하면 다음과 같은 결과를 만들 수 있습니까?
12345678
87654321
12348765
답변1
grep
공백 문자를 찾을 때까지 한 줄, [^ ]*
패턴 일치 12345678::hashtext_20191030::ITEM+…
및 나머지 줄만 반환 합니다. ITEM+
and 뒤의 숫자 만 일치시키려면 다음을 사용하세요.
grep -o 'ITEM+[^:]*' file.txt
또는
grep -o 'ITEM+[0-9]*' file.txt
여러 결과를 얻게 됩니다.
당신은 모든 숫자를 얻어야합니다
grep -o 'ITEM+[^:]*' file.txt | cut -c 6-
줄 끝까지 6번째 문자를 반환합니다.