Sed 使用awk从现有列中拆分数据,添加新列
这可以通过awk实现吗? 我希望添加一个新列,该列从现有列中分隔数据。 我的输入文件是以制表符分隔的文本文件。 包含device-0、device-1的列是从phone-0-1、phone-1-2派生的新列 输入:Sed 使用awk从现有列中拆分数据,添加新列,sed,awk,gawk,Sed,Awk,Gawk,这可以通过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 pho
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
尝试此sed行,看看是否有效:
sed 's/\sphone-[0-9]\+/&\t&/' file
与awk的想法相同:
awk -F'\t' -v OFS='\t' '{sub(/phone-[0-9]+/,"&\t&",$2)}7' file
编辑,重命名为设备:
sed 's/\(\s\+\)phone-\([0-9]\+\)/\1device-\2&/' file
尝试此sed行,看看是否有效:
sed 's/\sphone-[0-9]\+/&\t&/' file
与awk的想法相同:
awk -F'\t' -v OFS='\t' '{sub(/phone-[0-9]+/,"&\t&",$2)}7' file
编辑,重命名为设备:
sed 's/\(\s\+\)phone-\([0-9]\+\)/\1device-\2&/' file
谢谢,你的解决方案行得通。对不起,我的问题漏了一点。是否也可以将手机重命名为设备?见编辑question@SantoshPillai请参阅编辑SEDthank之后,设备和电话列之间的选项卡丢失。您的解决方案有效。对不起,我的问题漏了一点。是否也可以将手机重命名为设备?见编辑question@SantoshPillai请参阅编辑sed后,设备和电话列之间的选项卡缺失