sedを使用して括弧内の文字列を置き換える方法

sedを使用して括弧内の文字列を置き換える方法

次の文字列があります。

col1|col2|col3+++++++++++A|1|a B|2|b C|3|c D|4|d  (3 rows)

この文字列を分割して最後の+記号まで文字列の先頭を削除してから、尾(XYZ線)を削除したいと思います。

ここで、文字列はA|1|a B|2|b C|3|c D|4|d 以下のように複数の配列に分割したいと思います。

A 1 a 
B 2 b 
C 3 c 
D 4 d

これにより、forループを使用して各行を繰り返していくつかの処理を実行できます。

sedまたはgrepを使用してこれをどのように実行できますか?

初めてこれを試しましたが、うまくいきませんでした。

echo $string | sed 's/([0-9])rows//' | sed 's/[^+]//'

しかし、成功しませんでした。

ベストアンサー1

echo "col1|col2|col3+++++++++++A|1|a B|2|b C|3|c D|4|d  (3 rows)" |sed -e 's/.*\++//; s/d .*/d/; s/|\(.\)|\(.\)\s*/ \1 \2\n/g'

A 1 a
B 2 b
C 3 c
D 4 d

おすすめ記事