次のファイルがあります。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
49515 23/6/2014 SL B .OO 2500.00
R ROY 4561235
BEING THE T.E PAID
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
23495 26/7/2014 CL A 2300.00 .00
S DAS 2334167
BEING THE MONEY RECOVERED
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
私が望む出力は次のとおりです。
49515 23/6/2014 SL B .00 2500.00 R ROY 4561235 BEING THE T.E PAID
23495 26/7/2014 CL A 2300.00 .00 S DAS 2334167 BEING THE MONEY RECOVERED
私は大きな成功なしにawkで次のコードを試しましたが、アイデアは改行をフィールド区切り文字に設定し、ハイフン(-------)行をレコード区切り文字に設定することです。
BEGIN {
FS="/n"
RS="^-+$"}
{ print $1,$2,$3}
ベストアンサー1
これにより、必要な操作が実行されます。
awk '/---/ {print buff; buff="";} /[^-]/{buff=buff" "$0}' filename
if-else ブロックを使用することもできます。
awk '{if($0 ~ /---/){print buff; buff=""} else {buff=buff" "$0}}' filename
また、バッファを使わずに:
awk '{if($0 !~ /---/){printf "%s ", $0} else print ""}' filename