0

例えば; 以下を含む長いファイルがあります。

Somestring anotherstring -xone xcont othertring -yone ycont againother \
-detail "detail Contents within quote" stuff morestuff .. 

Somestring anotherstring -xone xcont othertring -yone ycont againother \
morestrings -detail detailCont morestrings etc.. .. 

望ましいアウト:

-xone xcont
-ycont ycont
-detail "detail Contents withing quote" 

次のような csv ファイルが理想的です。

xone yone detail
xcont ycont "detail Contents within quote"

目的の出力を得るための最良のアプローチは何ですか? 私は非常に限られた成功でsedコマンドを試してきました。私はperlを初めて使用するので、そこまで行きませんでした..提案された解決策を説明してください。前もって感謝します!

4

2 に答える 2

0

これはうまくいくかもしれません(GNU sed):

sed -r '/-(xone|yone|detail)/!d;s//\n\1/;s/[^\n]*\n//;s/\S+\s+("[^"]*"|\S+)/&\n/;P;D' file

これは、文字列orを含む行を探し-xone、それらと's または別の単語で囲まれた次の単語のみを表示します。-yone-detail"

于 2013-09-06T05:46:37.993 に答える