다음 파일이 있습니다.
linuxA.mtt.corp
linux3V
linux4B
linux2A
linux5v.mtt.corp
.mtt.corp
이 단어가 없는 모든 문자열을 어떻게 추가합니까 ?
답변1
이것은 매우 간단합니다 sed
.
sed -e '/\.mtt\.corp$/!s/$/.mtt.corp/' <file
이는 s
해당 문자열로 끝나지 않는 모든 줄의 줄 끝을 대체합니다..mtt.corp
답변2
펄 솔루션:
$ perl -lpe '$_ .= ".mtt.corp" if !/\.mtt\.corp$/' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
지정된 스크립트를 적용한 후 입력 파일의 각 줄을 인쇄하고, -p
각 입력 줄에서 후행 줄 바꿈을 제거하고 각 호출에 줄 바꿈을 추가합니다. 변수는 현재 행입니다. 따라서 행이 아직 일치하지 않으면 행에 추가됩니다.perl
-e
-l
print
$_
mtt.corp
이상한 해결책 :
$ awk '!/\.mtt\.corp$/{$0=$0".mtt.corp"}1;' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
같은 생각입니다. ( )로 끝나지 않는 행 .mtt.corp
에 추가하고 , 각 행( )을 인쇄합니다.$0
1;