텍스트 조작을 위해 여러 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. 처음에 Dash를 NODIESE로 교체하세요.

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

관련 정보