Unix - 파일의 모든 줄에 텍스트를 추가하는 방법(헤더 줄/첫 번째 줄 제외)

Unix - 파일의 모든 줄에 텍스트를 추가하는 방법(헤더 줄/첫 번째 줄 제외)

다음 데이터가 포함된 abc.txt 파일이 있습니다(실제 데이터에는 약 200개 정도의 많은 레코드가 있습니다).

눈 | 이름
1 |

3 |

이제 내 파일이 다음과 같이 보이도록 텍스트를 추가하려면 어떻게 해야 합니까?

스노우|이름|장소
1|잭|파리
2|질|파리
3|6월|파리

전역 교체를 시도했지만 첫 번째 줄에 다른 텍스트가 추가되어야 합니다. 그러니 저를 도와주세요.

답변1

여기에는 세 가지 옵션이 있습니다.

  • awk 및 그 변형( gawkmawk):

    awk '{if(NR==1){print $0,"| Place"} else{print $0,"| Paris"}}' file.txt
    
  • 진주:

    perl -lne '$.==1 ? print "$_ | Place" : print "$_ | Paris"' file.txt
    
  • sed

    sed '1 s/$/ | Place/; 1! s/$/ | Paris/' file.txt 
    

답변2

스크립트된 "내부" 파일 편집의 경우 다음을 사용하십시오 ex.

printf '%s\n' '1s/$/ | Place/' '2,$s/$/ | Paris/' x | ex abc.txt
  • printf에게 명령을 내립니다 ex.
  • 1s첫 번째 줄에서만 교체를 수행하십시오.
  • 2,$s다른 모든 라인에 대해 교체를 수행합니다.
  • x저장 및 종료.

$정규식에서는 "줄 끝"을 의미합니다 .

관련 정보