sed, cut 또는 awk를 사용하여 각 줄의 첫 번째 단어만 유지하려면 어떻게 해야 합니까?

sed, cut 또는 awk를 사용하여 각 줄의 첫 번째 단어만 유지하려면 어떻게 해야 합니까?

다음 형식의 큰 목록이 있습니다.

info1 info2 info3 info4

각 행에는 다음과 같은 4개의 필드가 있습니다. 정규식을 사용하여 각 줄의 첫 번째 단어를 제외한 모든 단어를 제거하는 방법은 무엇입니까?

답변1

단어가 공백으로 구분되어 있다고 가정하면 공백으로 구분된 첫 번째 단어만 추출하기 위해 정규식을 사용할 필요가 없습니다. 대신 cut공백을 구분 기호로 사용하세요.

cut -d ' ' -f 1 file

awk기본적으로 연속 공백이나 탭을 필드 구분 기호로 사용하는 를 사용하여 각 줄의 첫 번째 필드만 인쇄할 수도 있습니다 . 이는 정규식을 사용할 필요가 없는 또 다른 경우입니다.

awk '{ print $1 }' file

-F ' '단일 공백만 구분 기호로 사용하려면 위와 함께 사용하세요.

만약 당신이 정말로필요정규 표현식(예: 일부 교사를 행복하게 만들기 위해)을 사용한 다음 교체 명령을 사용합니다 sed.

sed 's/ .*//' file

이 명령은 첫 번째 공백 문자부터 각 줄 끝까지의 모든 항목을 제거(대체하지 않음)합니다.

관련 정보