Linux의 sed 명령 예

Linux의 sed 명령 예

내 파일 이름은 이고 file123내용은 다음과 같습니다.

passwd:x:redhat
redhat:x:pass
passwd:x:linux
passwd:x:redhatlinux

passwd파일 내부의 키워드, 특히 1,3행을 변경하고 싶습니다.

답변1

넌 할 수있어:

sed '1,3 s/^passwd/NEW/' file123
  • 1,3sed1~3호선 만 운행

  • s/^passwd/NEW/passwd선행 ( ^)를 로 바꿔 NEW필요에 맞게 이 값을 변경합니다 . 1~3행은 일치 하지만 1,3정규식 패턴은 예제의 1행과 3행만 일치하므로 해당 행만 수정됩니다.

파일을 제자리에서 편집하려면 GNU 구현을 사용하십시오 sed.

sed -i '1,3 s/^passwd/NEW/' file123

답변2

행 1과 3만 바꾸려면 다음을 수행할 수 있습니다.

sed '
  1 b subst
  3 b subst
  b
  :subst
  s/string/replacement/'

또는 다음을 사용하여 awk:

awk 'NR == 1 || NR == 3 {sub(/string/, "replacement")}
     {print}'

관련 정보