0

これは awk を使用して達成できますか? 既存の列からデータを区切った新しい列を追加しようとしています。入力ファイルはタブ区切りのテキスト ファイルです。device-0、device-1 の列は、phone-0-1、phone-1-2 から派生した新しい列です。

入力:

category1    phone-0-1   working     0000   0000     new     0
category1    phone-1-2   working     0000   0000     new     0
category1    phone-2-4   working     0000   0000     new     0
category1    phone-3-5   working     0000   0000     new     0
category1    phone-4-6   working     0000   0000     new     0

出力:

category1    device-0   phone-0-1    working     0000   0000     new     0
category1    device-1   phone-1-2    working     0000   0000     new     0
category1    device-2   phone-2-4    working     0000   0000     new     0
category1    device-3   phone-3-5    working     0000   0000     new     0
category1    device-4   phone-4-6    working     0000   0000     new     0
4

1 に答える 1

3

この sed 行を試して、動作するかどうかを確認してください:

 sed 's/\sphone-[0-9]\+/&\t&/' file

awk と同じ考え:

awk -F'\t' -v OFS='\t' '{sub(/phone-[0-9]+/,"&\t&",$2)}7' file

EDIT、名前をデバイスに変更:

sed 's/\(\s\+\)phone-\([0-9]\+\)/\1device-\2&/' file
于 2013-08-17T22:38:57.240 に答える