다음 형식의 줄이 포함된 파일을 변경하고 나열하는 방법: XXX-XXX-XXX-XXX-XXX

다음 형식의 줄이 포함된 파일을 변경하고 나열하는 방법: XXX-XXX-XXX-XXX-XXX

예를 들어, 다음 줄을 포함하는 "athletes" 파일이 있다고 가정해 보겠습니다.

1995-05-30-John-Smith 
1992-John-30-Smith-10 

형식을 #으로 변경하면서 "Smith"로 끝나는 줄의 처음 2개 단어와 마지막 단어를 나열하는 방법:

따라서 출력은 다음과 같습니다.

1995#05#Smith

답변1

다음과 같이 사용할 수 있습니다 awk.

awk -F'-' '/Smith$/{print $1"#"$2"#"$NF}' athletes

출력은 다음과 같습니다.

1995#05#Smith

여기서 awk는 로 끝나는 줄을 검색 Smith하고 그 사이에 가 있는 첫 번째, 두 번째 및 마지막 필드를 인쇄합니다 #.

사용sed

sed -En 's/([^-]*)-([^-]*).*Smith$/\1#\2#Smith/gp' file.txt

처음 두 개가 발생할 때까지 일치하고 -수정 후에만 일치하는 줄을 인쇄합니다.

답변2

다음을 시도해 볼 수 있습니다.

grep "Smith$" file | tr "-" "#" | cut -d'#' -f1,2,5

산출:

1995#05#Smith

답변3

다음과 같은 간단한 명령으로도 수행할 수 있습니다.

 awk -F "-" '/Smith$/&&OFS="#"{print $1,$2,$NF}' file

산출

1995#05#Smith

관련 정보