SED 명령 병합

SED 명령 병합

이 두 SED 명령을 결합하는 가장 좋은 방법은 무엇입니까? 첫 번째 명령은 CSP를 검색한 다음 한 줄 아래로 이동합니다. 두 번째 명령은 열 3에 세미콜론을 배치합니다.

sed -ne '/CSP/{n;p;}' test1>test2
sed 's/./;/3' test2>final

이 명령은 한 데이터 행에 적용되어야 하며 단독으로 실행할 수 없습니다.

답변1

일반적으로 sed명령은 개행이나 세미콜론으로 구분하여 함께 배치할 수 있습니다. 실제로 sh 또는 python과 약간 비슷합니다. (대부분의 sed명령, 즉 일부 명령에는 개행 문자가 필요합니다.)

따라서 n, 및 를 함께 사용하려면 첫 번째 명령에서 했던 p것처럼 세미콜론만 사용하면 됩니다 . 이 경우 전체 명령은 다음과 같습니다.s{n;p}

sed -ne '/CSP/{n;s/./;/3;p;}' test1 > final

또는 대신 개행 문자를 사용할 수 있습니다.

sed -ne '/CSP/{n
s/./;/3
p
}' test1 > final

그러나 간단한 한 줄짜리 명령줄에서 이 작업을 수행하는 것은 약간 성가신 일이지만(분명히 Linux에서는 더 어렵습니다) csh스크립트를 파일에 저장하면 더 유용할 것입니다.sed

답변2

또한 더 큰 파일로 작업하고 더 많은 파일 내용을 변경하지 않고 유지해야 할 때 일부 매개변수를 제거하는 것이 도움이 된다는 사실도 발견했습니다. 나중에 누군가가 이것을 볼 경우를 대비하여 이 질문에 대답하고 있습니다.

sed '/CSP /{n;s/./;/3;}' test1>test2

관련 정보