awk:打印两个单独编号的字段
我是unix新手,需要一些帮助 我有一个包含以下内容的文件:awk:打印两个单独编号的字段,awk,Awk,我是unix新手,需要一些帮助 我有一个包含以下内容的文件: 119000 ABC/CSD/NEW/PB/PB1234_PB0001123.CSV 60000 ABC/CSD/NEW/PB/PB14567_PB0001123.CSV 25000 ABC/CSD/NEW/PB/VV/PB16734_PB0001123.CSV 80000 ABC/CSD/NEW/PB/VV/PB2314_PB09820123.CSV 33117 ABC/CSD/NEW/PB/VV/PB45634_PB0001123
119000 ABC/CSD/NEW/PB/PB1234_PB0001123.CSV
60000 ABC/CSD/NEW/PB/PB14567_PB0001123.CSV
25000 ABC/CSD/NEW/PB/VV/PB16734_PB0001123.CSV
80000 ABC/CSD/NEW/PB/VV/PB2314_PB09820123.CSV
33117 ABC/CSD/NEW/PB/VV/PB45634_PB0001123.CSV
我希望输出像:
119000 PB1234 PB0001123
60000 PB14567 PB0001123
25000 PB16734 PB0001123
80000 PB2314 PB09820123
33117 PB45634 PB0001123
按第二个字段排序,然后按第三个字段排序…您可以尝试以下方法:
awk '{
split($2,a,"/") # Split the 2nd element into the array a
split(a[length(a)],b,"[_.]") # Split the last element of the array into the array b
print $1,b[1],b[2] # Print the wanted string
}' file
您可以尝试以下方法:
awk '{
split($2,a,"/") # Split the 2nd element into the array a
split(a[length(a)],b,"[_.]") # Split the last element of the array into the array b
print $1,b[1],b[2] # Print the wanted string
}' file
如果您的实际输入文件与示例中所示的相同,那么下面的awk可能会在相同的方面对您有所帮助
awk -F'[ /_.]' '{print $1,$(NF-2),$(NF-1)}' Input_file
说明:
-F'[/.]':-F在awk中用于设置行的分隔符。所以我们在这里设置空间,/,u和。作为所提及的已传递输入文件的任何行的字段分隔符
打印$1、$NF-2、$NF-1:使用awk名为print的开箱即用命令打印,然后$1表示当前行的第一个字段值,$NF-2表示当前行的第三个最后一个字段值$NF-1表示当前行的第二个最后一个字段值。如果您的实际输入文件与所示示例相同,那么下面的awk可能会在相同方面帮助您
awk -F'[ /_.]' '{print $1,$(NF-2),$(NF-1)}' Input_file
说明:
-F'[/.]':-F在awk中用于设置行的分隔符。所以我们在这里设置空间,/,u和。作为所提及的已传递输入文件的任何行的字段分隔符
打印$1、$NF-2、$NF-1:使用awk名为print的开箱即用命令打印,然后$1表示当前行的第一个字段值,$NF-2表示当前行的第三个最后一个字段值$NF-1表示当前行的第二个最后一个字段值。请添加您试图质疑的内容。。。另请参见,创建一个排序会产生差异的示例。。。给定ip/op的顺序相同。请同时添加您试图提问的内容。。。另请参见,创建一个排序会产生差异的示例。。。给定ip/op的顺序相同..它提供了所需的输出..只需稍加修改wk-F'[/.]''''''{print$1,$NF-2,$NF-1}'@Vikakmis,欢迎您,请看这个如何在SO中感谢某人:它提供了所需的输出..稍加修改wk-F'[/.]'{print$1,$NF-2,$NF-1}'@Vikakmis,欢迎您,请看这个如何在SO中感谢某人: