我有以下字符串:我們可以在另一個awk命令中運行awk/sed命令嗎?
<T"4567">Dummy Data</Test>
<T"0023"><Tag1>Dummy</Tag1></Test>
>DummyData<T"0001"><Tag2>asdad</Tag2><Tag3>bla</Tag3><Tag4>Dummy Data</Tag4></Test>
RandomString<T"0014">Dummy2 </Test>
我從一個大的文件過濾掉這串用下面的命令:
awk '{for(tag=1;tag<=NF;tag++){if($tag~/"...."/){print $tag}}}' Big_FILE
與<T"dddd">
格式檢索所有行。
現在我想匹配所有結尾</Test>
標籤與從開始<T"dddd">
標籤的值。 請注意,我們每條線上都有一對。 我可以使用awk
作爲$tag
嗎?我想解析所有行並將值存儲在<T"
和">
分隔符之間。對於每一行,我還希望使用此值用sed
覆蓋配對的</Test>
標記。
最後,它應該是這樣的:
<T4567>Dummy Data</T4567>
<T0023><Tag1>Dummy</Tag1></T0023>
>DummyData<T0001><Tag2>asdad</Tag2><Tag3>bla</Tag3><Tag4>Dummy Data</Tag4></T0001>
RandomString<T0014>Dummy2 </T0014>
我想用這樣的:
awk '{for(tag=1;tag<=NF;tag++){if($tag~/"...."/)
{print $tag
awk -v '[<T" ">]' '{print $tag_new}' $tag
sed -i -e 's/</Test>/</T$tag_new>/g' $tag
sed -i -e 's/<T"/<T/g' $tag
sed -i -e 's/">/>/g' $tag
}}}
但你可以看到我我不熟悉awk
和sed
。有沒有建議的方式來做這個複雜的(對我來說)過濾和替換過程?
謝謝!
謝謝!非常有用的命令! – vldkrm