awk를 사용하여 파일 조작

awk를 사용하여 파일 조작

다음 형식의 텍스트 파일이 있습니다.

Surname, Forename: Day.Month.Year: Degree

Sellen, Jo: 03.07.1986: MSc CSE

Parfitt, Harry: 20.03.1984: MSc IT

class.txt다음과 같이 awk를 사용하여 file()을 읽는 쉘 스크립트를 어떻게 작성할 수 있습니까 ?

awk '{gsub(/ +/,"\t");print}' class.txt

그리고 두 번째 열과 세 번째 열을 바꿔서 다음 형식으로 데이터를 출력합니다.

Surname Forename MSc stream Date of Birth

Sellen Jo MSc CSE 03.07.1986 

Parfitt Harry MSc IT 20.03.1984

(탭 열이 잘못 정렬되어도 걱정하지 마세요.)

답변1

필드는 콜론으로 구분되어 있으므로 FSawk의 변수에서 이를 고려해야 합니다. 또한 필드 순서를 조작하므로 섹션에서 이를 설정 해야 합니다 OFS.BEGIN

답변2

다음과 같은 코드를 시도해 볼 수 있습니다.

awk 'BEGIN { FS="[,:]" } { print $1, $2, $4, $5, $3 }' input_file

여기서는 AWK 내장 변수를 사용하여 여러 필드 구분 기호(및 :)를 지정합니다 FS. 에는 여러 필드 구분 기호가 포함되어 있습니다 [].

관련 정보