パイプを並べ替えてフィールドを分離し、2つのフィールドを結合します。

パイプを並べ替えてフィールドを分離し、2つのフィールドを結合します。

入力する:

|Ordernum=8921|mn=03|yr=20|id=869|Name=1|Street=2|City=3|State=4|Zip=5|Country=6|

出力:

8921,03/20,869,1,2,3,4,5,6

どうすればいいですか?

ベストアンサー1

そしてsed

sed 's/|[^=]*=/,/g; s/|$//; s/,//; s|,|/|2'

または、mn合計がyr常に2番目と3番目のフィールドではない場合(ただし、その順序で見つかります):

sed 's@|mn\(=[^|]*\)|yr=@|mnyr\1/@; s/|[^=]*=/,/g; s/|$//; s/,//'

おすすめ記事