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番目のフィールドが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
注文の実行