2013-08-17 1 views
0

Можно ли это сделать с помощью awk? Я ищу, чтобы добавить новый столбец с разделителями данных из существующего столбца. Мой входной файл представляет собой текстовый файл с разделителями табуляции. Столбец с устройством-0, устройство-1 - это новый столбец, производный от телефона-0-1, телефон-1-2.добавить новый столбец с данными, разделенными с существующей колонки с помощью awk

Вход:

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 

ответ

3

попробовать этот патч в линию, увидеть, если он работает:

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 
+0

Thanks.your решение работает. Извините, я немного пропустил в своем вопросе. Можно ли переименовать телефон на устройство? см. отредактированный вопрос –

+1

@SantoshPillai см. EDIT – Kent

+0

Спасибо. Это отлично работает :) –