sed에 awk보다 더 나은 기능이 있나요? [폐쇄]

sed에 awk보다 더 나은 기능이 있나요? [폐쇄]

나는 sed최근에 한동안 공부를 하고 있는데 너무 부끄럽습니다.

  • 단일 문자 명령( p, a, d, ...) 을 기억해야 합니다.
  • 개념하나의예비 공간컨텍스트를 기억하는 데 사용 - 다른 유사한 명령( h, x, g, ...) 으로 제어됨

나는 스스로에게 이렇게 말했습니다. 이것이 더 직관적일 수는 없을까? 즉, 더 자세한 명령(예: print대신 p)을 사용하는 등하나버퍼 – 내 필요에 따른 표준 변수(예:) lastUserSeen?

그럼 누군가말해 주세요:

아니요,안 돼요hs, g, p(-n 포함) 이외의 다른 sed 구성을 사용하거나 실제로 1970년대 중반에 awk가 발명되었을 때 쓸모없던 구성을 사용하고 있습니다. 요즘 사람들은 진지하게 소프트웨어를 작성하기보다는 지적인 연습을 위해 이러한 다른 구조를 사용합니다. 왜냐하면 동등한 awk 솔루션이 더 깨끗하고, 더 효율적이고, 더 이식성이 있고, 유지 관리/강화하기 쉽고, 다른 모든 의미 있는 방식이 더 낫기 때문입니다.

어? 나는 즉시 그것에 뛰어 들었고 그것과 사랑에 빠졌습니다. 여러 줄로 구성된 프로그램 중 다수는 디버깅 없이 처음 실행될 때 작동합니다. awk에 대한 후속 연구를 통해 awk가 sed를 완전히 대체할 수 있다고 생각합니다. 또는awk로는 쉽게 달성할 수 없는 효과가 있는 일부 sed 기능(제가 놓친)이 있습니까?awk 사용자가 sed를 실행할 이유가 있나요?

편집: 이것은 "어느 것이 더 나은가"에 대한 질문이 아니라 기능 세트 비교입니다. awk에서 동일하게 효율적으로 구현할 수 없지만 더 많은 awk 코드가 필요한 기능이 sed에 있습니까?

답변1

파일을 제자리에서 빠르고 쉽게 편집하려면 sed비슷한 것을 작성하는 것보다 -i 기능을 사용하는 것이 훨씬 쉽습니다 awk. gawk버전 1.4.0 이상을 사용하는 플랫폼에는 이 문제를 해결할 수 있는 "현재 위치" 기능이 있다는 점을 인정합니다 .

sed -i 's/foo/bar/' filename

sed기존의 모든 스크립트가 이를 사용하기 때문에 마지 못해 배웠습니다. 선택의 여지가 있다면 새로운 스크립트를 작성할 때 awk일반적으로 승리하게 되며 코드는 훨씬 더 읽기 쉽고 유지 관리하기 쉽습니다.

관련 정보