2016-09-12 2 views
-2

私は1行にすべての内容を含むいくつかのXMLファイルを持っています。私は<p1></p1>の間の部分を1つのファイル内の異なるファイルにマージしようとしています。 awkを使用してこれを行うことは可能ですか?awkを特定の部分文字列に対して1行でマージして

+0

: '-o grepを使用すると、表示するために必要があるだろうが、*> – user000001

+1

outputfile'はい、それはおそらく可能ですinputfile解説 'を*。'あなたの質問をより明確にするための例ですあなたがこれまでに試したことを見ることも良いでしょう。 AWKはXMLを処理するようには設計されていないので、入力が変更されたときにはすべての解決策が破られる可能性があることに注意してください。 –

+0

このアプローチは、次のように実装することができます... –

答えて

1

は、入力ファイル内の小さなエラーに対して行われなければならないかを確認することは困難である cat * | awk -F"<p1>" '{print $2;}' | awk -F"</p1>" '{print $1;}' > output.txt

+0

"awk -v RS ="( |) "'FNR%2 == 0 {print $ 1}' * .xml' –

1

を試してみてください。 grep -oソリューションは1行で2段落の入力に失敗し、<p1>が見つかり、</p1>が見つからない場合は何が必要ですか?
(@Jamesのコメント)またはsedawkを試してみてください。これを試してみてください

sed 's#</p1>#\n#g' xmlfiles | sed -n '/<p1>/ s#.*<p1>##p' 
関連する問題