sed그리고 awk의 상위 집합입니다 grep. 서로 더 쉽게 할 수있는 일이 있습니다.
grep foosed '/foo/!d'또는 로 쓸 수 awk /foo/있지만 다음을 고려하십시오.
grep -i foosed '/[fF][oO][oO]/!d'GNU와 같은 비표준 확장을 고려하지 않는 한 있어야합니다 sed '/foo/I!d'. 또는와 awk: awk 'tolower($0) ~ /foo/'나 다시 GNU 확장을 사용 : awk -v IGNORECASE=1 /foo/.
다른 도구가 좋고 다른 도구와 번거로운 것들 :
grep
grep간단한 도구이지만 awk또는 sed다음 과 같이 재현하기 어려운 매우 특수한 작동 모드가 있습니다 .
grep -i 대소 문자를 구분하지 않는 일치 (위 참조)
grep -Fe "$string"고정 문자열 검색의 경우 ( export string; awk 'index($0, ENVIRON["string"])'와 awk직접 일치하지 않음 sed)
grep -r재귀 검색을위한 (비표준)
- (비표준)
grep -P/ pcregrepperl-like regexps (일부 sed구현은 가장 중요한 것은 아니지만 perl-like regexp 지원을 가짐)
- (비표준)
grep -o일치하는 부분을 반환합니다 (여러 줄 awk또는 sed동일)
- (비 표준)
grep -A/B/C(와 유사한 방식으로 할 다시 고통스러운 경기 주위에 복귀 컨텍스트 sed또는 awk)
sed
s/foo/bar/: sed의 s명령에는 awk다음과 같이 구현하기 어려운 기능이 있습니다 .
s/foo\(.*\)bar/\1/g: 캡처 (GNU awk에 gensub()확장명이 있지만)
s/foo/bar/3: 각 줄에서 3 번째 발생을 교체
- (비표준) : 내부 파일 편집 (GNU에서도 지원되지만
awk).
어 wk
awk 세 가지 중에서 가장 풍부한 기능입니다.
- 숫자 처리에 적합
- 열 형식의 입력을 처리하는 데 좋습니다.
- 서로 다른 소스에서 데이터를 추출하고 연관 배열로 결합하는 데 적합합니다.
펄
perl실질적인 추출 및보고 도구로서 모든 것이 최고입니다. 그것이 처음에 디자인 된 것입니다 (모든 것을 sed/ awk쓸모없는 도구로 만들기 위해 ).
perl텍스트 처리를 마스터 하면 심각한 이점이 있습니다. sed예를 들어 덜 일반적인 명령을보기 전에도 시간을 투자하는 것이 좋습니다 .
공연
경험상 도구가 더 전문화 될수록 가장 효율적입니다. 그러나 이는 구현, 작업 및 기타 몇 가지 다른 요소와 성능에 따라 크게 달라질 수 있습니다.
예를 들어, 매우 빠른 일부 grep또는 sed구현이 있지만 예를 들어 멀티 바이트 문자를 지원하지 않으므로 멀티 바이트 로케일의 미국 영어 텍스트에서만 올바르게 작동 할 수 있습니다. 또는 작은 고정 길이 버퍼에서 작동하므로 임의의 입력에서 작동하지 않기 때문에 빠릅니다.