동일한 파일에서 동시에 여러 sed 명령 실행

동일한 파일에서 동시에 여러 sed 명령 실행

디렉토리의 모든 파일에서 문자열 foo의 모든 항목을 bar로 변경하려면 다음을 사용합니다.

sed -i -- 's/foo/bar/g' *

발견하다여기

하지만 NAME을 이름 등으로 변경하고 싶습니다. 예전에 시도해 본 적이 있는데,

sed -i -- 's/foo/bar/g' * sed -i -- 's/NAME/이름/g' *

그러면 새 파일이 생성됩니다. 새 파일을 만들지 않고 이 명령이 원본 파일을 다시 작성하고 foo를 bar로 바꾸고 NAME을 이름으로 바꾼 다음 다른 대체 파일을 갖도록 하려면 어떻게 해야 합니까?

답변1

sed단일 호출로 여러 표현식을 제공할 수 있습니다.

sed -e 'expr' -e 'expr' -e ...

귀하의 경우:

sed -e 's/foo/bar/g' -e 's/NAME/name/g'

표현식은 입력의 각 줄에 왼쪽에서 오른쪽으로 순차적으로 적용됩니다.

관련 정보