레코드당 필드 수가 다른 탭으로 구분된 텍스트 파일이 있습니다. 하지만 파일의 세 번째 탭 이후의 모든 탭을 쉼표로 바꾸고 싶습니다.
입력하다
100 Apple COOK USA EUROPE CHINA
200 Micro BIIL UK INDIA
300 Saums Chul SK
원하는 출력:
100 Apple COOK USA,EUROPE,CHINA
200 Micro BIIL UK,INDIA
300 Saums Chul SK
답변1
이 시도,
sed -i 's#\t#,#4g' file
100 Apple COOK USA,EUROPE,CHINA
200 Micro BIIL UK,INDIA
300 Saums Chul SK
4g
각 줄에서 탭 문자의 네 번째 항목을 쉼표로 바꿉니다.
답변2
사용 awk
:
awk 'BEGIN{OFS=IFS=" ";}{for(i=5;i<=NF;i++){$4=$4","$i;} print $1,$2,$3,$4}' file
귀하의 사례에 대한 결과는 다음과 같습니다:
100 Apple COOK USA,EUROPE,CHINA
200 Micro BIIL UK,INDIA
300 Saums Chul SK
awk 명령은 파일에서 한 줄씩 읽습니다. 이제 첫 번째 두 번째 세 번째 단어를 그대로 인쇄하지만 네 번째 단어 이후에는 쉼표로 연결합니다.