열을 재정렬하고 텍스트 파일을 조작하는 가장 쉬운 방법

열을 재정렬하고 텍스트 파일을 조작하는 가장 쉬운 방법

저는 학교에서 리눅스를 공부하고 있으며 현재 텍스트 파일을 처리하고 있습니다. 길을 따라 여기저기서 몇 가지 지름길을 배우기를 바랍니다. 현재 다음 내용이 포함된 텍스트 파일이 있습니다.

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

관련 정보