:
특정 문자(예:)로 줄을 분할하고 해당 분할의 일부를 기반으로 고유한 줄을 찾는 방법이 있는지 궁금합니다 .
예를 들어, 다음을 파이프하면stdin
file1: line 4
file1: line 5
file1: line 6
file2: line 1
file2: line 2
file2: line 1
file53: line 67
file24: line 412
파일당 한 줄만 추출하는 방법이 있습니까? 예를 들면 다음과 같습니다.
file1: line 4
file2: line 1
file53: line 67
file24: line 412
또는 더 나은 방법은 다음과 같습니다.
file1
file2
file53
file24
감사합니다
답변1
이는 다음과 같은 몇 가지 일반적인 유틸리티를 사용하여 쉽게 수행할 수 있습니다.
cut -d : -f 1 input.txt | uniq
cut
입력 파일에서 필드를 추출합니다.-d
구분 기호(이 경우 a:
) 를 나타내며-f 1
첫 번째 필드를 추출함을 나타냅니다.uniq
입력에서 중복된 인접 행 제거
답변2
모든 결과의 형식이 동일하므로(파일은 디렉토리에 있음 src/
) 다음을 사용할 수 있습니다.
cat input.txt | tr ':' '\n' | grep 'src/' | uniq