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
주문 실행