GNU 확장 없이 BSD sed를 사용하면 아래 제공된 예와 유사한 작업을 수행할 수 있지만 줄 번호 대신(실제 번호를 지정하는 대신) 패턴이 발생하는 첫 번째 줄에서 교체가 수행됩니다. ?
줄 번호 제한
가장 간단한 제한은 줄 번호입니다.
3행의 첫 번째 숫자를 제거하려면 명령 앞에 "3"을 추가하면 됩니다.
sed '3 s/[0-9][0-9]*//' <filename >newfilename
답변1
{ sed -Ee'/[0-9]+/{s///;q;}'; cat; } <in >out
^BSD와 함께 작동해야 합니다 sed
. 그러나 분명히 그렇지 않습니다.
그래서:
sed -e'/[0-9][0-9]*/{s///;:b' -e'n;bb' -e\} <in >out
...그들 중 누구와도 작동해야 합니다.
답변2
이것은 완벽하게 작동합니다.
sed '1,/abc/s/abc/xyz/' 파일.txt
다음과 같이 축약될 수 있습니다.
sed '1,/abc/s//xyz/' 파일.txt
GNU 및 BSD와 호환 가능:
sed '1,/[0-9][0-9]*/s///' <파일 이름> 새 파일 이름