大きなテキストファイルを使用して、括弧で囲まれたデータを1行に入れようとしています。現在は複数行に分かれています。
外観:
(123456
'abcdef'
'a1b2c3d4'
'1234567890'
0)
(789012
'zyxwv'
'987gha871'
'987654828'
0)
次のように見えるにはどうすればよいですか?
(123456 'abcdef' 'a1b2c3d4''1234567890' 0)
(789012 'zyxwv''987gha871''987654828' 0)
この問題を解決するためにsedステートメントを使用してみましたが、成功しませんでした。どんなアイデアがありますか?
ありがとうございます! !
答え1
アッ解決策:
awk '{ printf "%s%s",$0,($0~/\)$/)? ORS:FS }' file
出力:
(123456 'abcdef' 'a1b2c3d4' '1234567890' 0)
(789012 'zyxwv' '987gha871' '987654828' 0)
答え2
ㅏ真珠解決策:
perl -nle 'if (/\(/../\)/) {push @a,$_;if (m/\)/) {print "@a";@a=()}}' file
これは以下を使用します。範囲演算子("..")は、開いている括弧と閉じている括弧の間に表示されるすべての内容をキャプチャします。閉じ括弧が検出されると、配列の内容が印刷され、次のサイクルのために配列が消去されます。