sed -e 'script' -e 'script'
동일 합니까 sed "script;script"
?
또한 단일 파일 검사 중에 이러한 여러 명령이 실행됩니까? 아니면 더 많은 스크립트를 넣을수록 파일에 대해 더 많은 스캔/통과가 수행됩니까? (스크립트당 하나)
sed는 스크립팅 언어이기 때문에 다중 전달 이론에 기울고 있습니다... 예를 들어, 다음과 같은 스크립트가 있으면 sed "script;script"
다음과 같은 sed 스크립트가 있습니다.
script
script
그러므로 모든 일이 프로그래밍 방식으로 이루어진다고 가정하는 것은 당연합니다.
하지만 그래서 어쩌죠 -e 'script' -e 'script'
?
가장 중요한 것은 sed에게 이 작업을 한 번만 수행하여 대용량 파일에 귀중한 CPU 주기를 절약하도록 지시하는 방법이 있습니까?sed가 이 작업을 수행할 수 없다면 이와 같은 작업을 수행할 수 있는 다른 방법이 있습니까? (어쩌면 awk가 더 적합할까요? 잠깐)
시간을 내어 도와주셔서 감사합니다
답변1
각 입력 줄에 대해 각 표현식/스크립트가 차례로 적용됩니다. 주문하다
sed -e 's/apple/orange/g' -e 's/orange/red/g'
문자열의 모든 항목을 대체합니다
apple
그리고orange
문자열로red
.오직여행데이터를 입력하여.
sed
처리 스트림은스트림 편집기결국 입력 스트림은 검색 가능하지 않아도 됩니다.
당신이 제시한 예는,
sed -e "script1" -e "script2"
동일합니까?
sed "script1;script2"
이는 다음과 같습니다.
sed -f file1 -f file2
그 중에는 다음과 관련된 과 가 file1
포함되어 있습니다 .script1
file2
script2
sed -f file
file
포함 하는
script1
script2
또는
script1;script2
귀하의 임무에 적합한 지 여부 sed
는 전적으로 임무에 달려 있습니다. 마찬가지로 파일이나 입력 스트림을 여러 번 구문 분석할 필요가 없습니다 sed
. 일부 작업 , 특히 집계된 데이터가 필요한 작업이 awk
더 적합합니다 .awk
sed
이는 편집기 awk
이자 텍스트 처리 언어에 가깝습니다.