Gawk Line 移除,Splitter 是:
Gawk Line removal, Splitter is :
是否可以将某些列从一个 .txt 文件移动到另一个 .txt 文件?
我有一个 .txt 包含:
USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE
USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE
我想使用 gawk 将 ADDRESS 和 POSTCODE 列提取到另一个 .txt 中,因此对于这个给定的文件,输出应该是:
ADDRESS1:POSTCODE1
ADDRESS2:POSTCODE2
等等
试试看:
awk -F: '{printf "%s:%s ",,}' ex.txt
输入是
USERID:ORDER#:IP:PHONE:ADDRESS1:POSTCODE1
USERID:ORDER#:IP:PHONE:ADDRESS2:POSTCODE2
输出是(如果我理解正确的话在一行上)
ADDRESS1:POSTCODE1 ADDRESS2:POSTCODE2
唯一的默认设置是它以尾随 space 结尾并且不以换行符结尾。
可以用稍微复杂一点的方法修复(但仍然可读):
awk -F: 'BEGIN {z=0;} {if (z==1) { printf " "; } ; z=1; printf "%s:%s",,} END{printf"\n"}' ex.txt
这是一个经典的 AWK 转换。您要使用“-F :”指定输入由“:”分隔并在输出上打印一个新的“:”:
awk -F: '{ print ":" }' <input.txt >output.txt
awk -F: 'NR==1 {print "1:""1"};NR==2 {print "2:""2"}' file
ADDRESS1:POSTCODE1
ADDRESS2:POSTCODE2
是否可以将某些列从一个 .txt 文件移动到另一个 .txt 文件?
我有一个 .txt 包含:
USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE
USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE
我想使用 gawk 将 ADDRESS 和 POSTCODE 列提取到另一个 .txt 中,因此对于这个给定的文件,输出应该是:
ADDRESS1:POSTCODE1
ADDRESS2:POSTCODE2
等等
试试看:
awk -F: '{printf "%s:%s ",,}' ex.txt
输入是
USERID:ORDER#:IP:PHONE:ADDRESS1:POSTCODE1
USERID:ORDER#:IP:PHONE:ADDRESS2:POSTCODE2
输出是(如果我理解正确的话在一行上)
ADDRESS1:POSTCODE1 ADDRESS2:POSTCODE2
唯一的默认设置是它以尾随 space 结尾并且不以换行符结尾。
可以用稍微复杂一点的方法修复(但仍然可读):
awk -F: 'BEGIN {z=0;} {if (z==1) { printf " "; } ; z=1; printf "%s:%s",,} END{printf"\n"}' ex.txt
这是一个经典的 AWK 转换。您要使用“-F :”指定输入由“:”分隔并在输出上打印一个新的“:”:
awk -F: '{ print ":" }' <input.txt >output.txt
awk -F: 'NR==1 {print "1:""1"};NR==2 {print "2:""2"}' file
ADDRESS1:POSTCODE1
ADDRESS2:POSTCODE2