![sed 또는 awk를 사용하여 .txt 파일에서 몇 문자를 제외한 모든 줄에 문자열을 추가하는 방법](https://linux55.com/image/114021/sed%20%EB%98%90%EB%8A%94%20awk%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20.txt%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%AA%87%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%9C%20%EB%AA%A8%EB%93%A0%20%EC%A4%84%EC%97%90%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
xid.txt
다음과 같은 텍스트 파일이 있습니다.
xid: SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: SC32173 id: artf398402
xid: SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556
'SC48028', 'SC32173'...등 앞에 'PT_' 문자열을 추가해야 합니다. 문자열 "SC..."는 "AC..." 또는 "DL.." 등 어떤 조합으로도 시작할 수 있습니다.
원하는 출력:
xid: PT_SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: PT_SC32173 id: artf398402
xid: PT_SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556
위 출력이 표시되면 'i', 'p', 'w' 및 'numeric'으로 시작하는 문자열 앞에 'PT_'를 삽입하면 안 됩니다. 내 요구 사항을 충족하기 위해 sed에서 삽입/추가를 사용하여 몇 가지 기본 명령을 시도했습니다.
답변1
그리고앗:
awk '$2~/^[A-Z][A-Z]/{ $2="PT_"$2 }1' xid.txt
산출:
xid: PT_SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: PT_SC32173 id: artf398402
xid: PT_SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556
$2~/^[A-Z][A-Z]/
- 두 번째 필드가 2개의 대문자로 시작하는 경우
또는sed방법:
sed -i 's/^\(xid:[[:space:]]*\)\([A-Z]\{2\}[^[:space:]]*\)/\1PT_\2/' xid.txt
답변2
sed 옵션
sed -i -e 's/[A-Z][A-Z]/PT_&/' file
어디
-i
제자리에서 편집-e
주문 실행