
こんにちは、シェルスクリプトを使用して次の1行の文字列を変更する必要があります
{1:F01NESWSZM0AXXX1111111111} {2:I940BBRUBEBBXXXXN} {3:{108:400MSOG161200FRO}} {4: :20:400MSOG161200FRO :25:1xxxxxxxx65 :28C:7 :60F:D160429EUR423431,51 :61:1604280428DR300001,NONREF//REFABH09 INCOMING F 1 PARMALT ROUTH AFR :62F:D160429EUR423431,51 :64:D160429EUR423431,51 -}
到着
{1:F01NESWSZM0AXXX1111111111} {2:I940BBRUBEBBXXXXN} {3:{108:400MSOG161200FRO}} {4:
:20:400MSOG161200FRO
:25:1xxxxxxxx65
:28C:7
:60F:D160429EUR423431,51
:61:1604280428DR300001,NONREF//REFABH09 INCOMING F 1 PARMALT ROUTH AFR
:62F:D160429EUR423431,51
:64:D160429EUR423431,51 -}
sedを使用しようとしていますが、文字列が1を超えるため、文字の前に改行文字を追加する必要があります。
新しい行の区切り文字は次のとおりです。
:20:
:25:
:28C:
:60F:
:64:
どうすればいいですか?
答え1
単に「交換」を使用してください\|
:
sed 's/\(:\(20\|25\|28C\|60F\|64\):\)/\n\1/g'
答え2
私はお勧めします
sed 's/ :/\n:/g' long.txt