다음과 같은 텍스트 파일이 있는 경우:
Xgrep () { something ; }
Xgrep
Xgrep
Xgrep
Xgrep
Xgrep
나는 이것이 이렇게 보이기를 원한다.
Xgrep () { something ; }
Xgrep 12
Xgrep 13
Xgrep 14
Xgrep 15
Xgrep 16
-s " "
즉, 접두사 대신 접미사를 사용하고 사이에 공백이 있는( 사이에 공백이 있는) 시작할 숫자를 선택하고 싶다는 의미입니다 . 나는 nl
이것을 사용할 수 있다고 생각했지만 맨페이지를 읽어보니 그렇지 않은 것 같습니다. 나는 이것을 시도했습니다 :
nl -b pexpr=Xgrep -s " " ~/desktop/test.txt
그러나 이것은 단지 이것입니다:
Xgrep
Xgrep
Xgrep
Xgrep
Xgrep
정규식 구문이 잘못되었기 때문일 수 있지만 일치하는 방법을 찾을 수 없으며 다른 모든 사용 방법이 나열되어 있습니다.
이 웹사이트내가 하고 싶은 일과 거의 똑같지만, 명령줄 형식으로 숫자 접미사만 사용합니다.
답변1
% perl -ple 'BEGIN{$i=12} s/^(Xgrep)\s*$/"$1 ".$i++/e' < in
Xgrep () blah
Xgrep 12
Xgrep 13
Xgrep 14
Xgrep 15
Xgrep 16
Xgrep 17
%
라인을 인쇄하고, 카운터를 시작하고, Xgrep을 일치시키고 끝에 증분 숫자를 추가합니다. 필요한 경우 < in
파일 이름으로 바꾸고 -i
손상된 파일에 플래그를 추가합니다. 솔루션은 awk
매우 유사해 보일 수 있습니다.