次の行を含むファイルに移動しています。
project:
ランダムプロジェクト名rf1 rf2 rf3 rf4 rf5 rf6 rf7
rv1 rv2 rv3 rv4 rv5 rv6 rv7
- その他ランダムライン
どこ
2.
、3.
そして4.
常に次の行の後ろに1.
- rv7(任意の値7)は
foo
次のいずれかです。bar
例:
project: potatopotato
rf1 rf2 rf3 rf4 rf5 rf6 rf7
rv1 rv2 rv4 rv4 rv5 rv6 rv7
...
THE END
最良のシナリオでは、次のフィールドを使用して.csvを作成したいと思います。
project rf2 rf1 rf7 rf5 rf6
私が今持っているものは次のとおりです。
awk '/foo|bar/{print $2",",$1",",$NF",",$(NF-2)",",$(NF-1)}'
問題は、任意の値が空白の場合、フィールド数が少ないため混乱することです。通常rv6はですNULL
。肯定的な側面では、rv5とrv6が次のようにipv4パターンに従うことがわかります。1.1.1.1
だから私の質問は次のようになります
- 私が持っているものをどのように変更し、
$(NF-2)
IP$(NF-1)
パターンに従うかを確認して正常にインポートできますか? awk '/project/{print $2}'
私が望む.csvを作成できるようにどのように組み合わせることができますか?
より良い方法や他の提案があればコメントしてください。ありがとうございます。
ベストアンサー1
$ awk 'NR==2{print p, $2, $1, $7, $5, $6} {sub(/:/,""); p=$1}' file
project rf2 rf1 rf7 rf5 rf6
$ awk -v OFS=',' 'NR==2{print p, $2, $1, $7, $5, $6} {sub(/:/,""); p=$1}' file
project,rf2,rf1,rf7,rf5,rf6
これが必要なものではない場合は、要件を明確にし、より便利で正確な入力/出力の例を提供するように質問を編集してください。