텍스트 조작을 위해 여러 sed 명령 사용

텍스트 조작을 위해 여러 sed 명령 사용

몇 가지 변경 사항을 적용하고 싶은 bash 파일이 있습니다.

sed -i 's/      /    /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile

첫 번째 명령에서는 TAB을 공백으로 바꾸고 그 후에 주석(##으로 시작하는 주석도 있음)과 빈 줄을 제거하려고 합니다. 그런 다음 내 파일에 지정된 패턴 뒤에 파일을 삽입하고 싶습니다. 명령 순서에 문제가 있습니까?

답변1

sed 한 번에 여러 명령을 내릴 수 있습니다. 예를 들면 다음과 같습니다.

sed 's/\t/    /g;/^ *$/d;s/^#/NODIESE/' testfile

이 한 줄

  1. 탭을 공백으로 교체
  2. 빈 내용(또는 빈 줄)으로 시작하는 줄 삭제
  3. 시작 부분의 대시를 NODIESE라는 단어로 바꿉니다.

따라서 테스트 파일은 한 번만 처리되고 sed는 한 번만 시작됩니다.

관련 정보