
다음 형식의 텍스트 파일이 있습니다.
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
필드는 콜론으로 구분되어 있으므로 FS
awk의 변수에서 이를 고려해야 합니다. 또한 필드 순서를 조작하므로 섹션에서 이를 설정 해야 합니다 OFS
.BEGIN
답변2
다음과 같은 코드를 시도해 볼 수 있습니다.
awk 'BEGIN { FS="[,:]" } { print $1, $2, $4, $5, $3 }' input_file
여기서는 AWK 내장 변수를 사용하여 여러 필드 구분 기호(및 :)를 지정합니다 FS
. 에는 여러 필드 구분 기호가 포함되어 있습니다 []
.