次の内容を含むファイルがあります。
Text1 , Text11 : APC signal 0 , prev=7
Text2 , Text22 : APC signal 1 , prev=0
Text3 , Text33 : APC signal 0 , prev=1
Text4 , Text44 : APC signal 1 , prev=0
Text5 , Text55 : APC signal 0 , prev=1
Text6 , Text66 : APC signal 1 , prev=0
最初と3番目の列を抽出したいのですが、2番目の列(「:」の後の2番目の部分)の部分文字列だけを抽出したいと思います。
私が望む結果:
Text1 , APC signal 0 , prev=7
Text2 , APC signal 1 , prev=0
Text3 , APC signal 0 , prev=1
Text4 , APC signal 1 , prev=0
Text5 , APC signal 0 , prev=1
Text6 , APC signal 1 , prev=0
ベストアンサー1
使用sed
sed 's/, [^:]*:/, /' file
,
これにより、カンマとスペース()で始まり、コロンではなくできるだけ多くの数([^:]*
)が続き、コロン自体()が来るテキストを検索します:
。その後、,
目的の出力を取得するには、コンマとスペース()で置き換えます。
Text1 , APC signal 0 , prev=7
Text2 , APC signal 1 , prev=0
Text3 , APC signal 0 , prev=1
Text4 , APC signal 1 , prev=0
Text5 , APC signal 0 , prev=1
Text6 , APC signal 1 , prev=0
実際、最初のコンマの後に2つのスペースを表示したくない場合は、2番目のカンマスペース(,
)を単一のコンマ(,
)に変更します。