저는 학교에서 리눅스를 공부하고 있으며 현재 텍스트 파일을 처리하고 있습니다. 길을 따라 여기저기서 몇 가지 지름길을 배우기를 바랍니다. 현재 다음 내용이 포함된 텍스트 파일이 있습니다.
First Last 111 E. Road New York NY
First2 Last2 222 w. Road Newark NJ
탭으로 구분된 대신 열과 쉼표로 구분하여 재정렬하는 스크립트를 작성해야 합니다. 내가 한 일은 각 필드를 잘라내어 자체 tmpfile에 넣은 다음 다음과 같이 붙여넣는 것뿐입니다.
paste tmplast tmpfirst tmpstate tmpaddress | tr '\t' ',' > finished
모든 것을 tmp 파일로 자르고 함께 붙여넣는 것보다 더 빠른 방법이 있습니까? 저는 Linux를 처음 접했고 파일 조작을 위해 배운 유일한 명령은 tr
및 입니다 sed
.
답변1
awk
다음을 수행할 수 있습니다.
awk 'BEGIN {FS="\t"; OFS=","} {print $2, $1, $5, $3, $4}' file
FS 및 OFS는 "(입력) 필드 구분 기호" 및 "출력 필드 구분 기호"를 지정하고 기호를 사용하여 필드가 인쇄되는 순서를 명시적으로 지정할 수 있습니다 $
. (임시 파일은 필요하지 않습니다.)
산출:
Last,First,NY,111 E. Road,New York
Last2,First2,NJ,222 w. Road,Newark