文件.txt 示例:
/map/1.0.0/cd/base/4/23/82.png 200
/map/1.0.0/cd/base/2/48/154.png?fefsfes 200
/map/1.0.0/cd/base/3/45/433.png?gtdrdrg 200
我需要删除这个:
.png
.png?fefsfes
.png?gtdrdrg
我用这个
$ cat file.txt | awk '{ print $1","$2}'
得到结果:
/map/1.0.0/cd/base/4/23/82.png,200
/map/1.0.0/cd/base/2/48/154.png?fefsfes,200
/map/1.0.0/cd/base/3/45/433.png?gtdrdrg,200
我可以以某种方式获取列awk '{ print $1}'
并删除最后一个数字之后的所有内容吗?
想要的结果:
/map/1.0.0/cd/base/4/23/82,200
/map/1.0.0/cd/base/2/48/154,200
/map/1.0.0/cd/base/3/45/433,200
答案1
如果您想保留 awk 命令的本质,那么您可以简单地sub
去掉不需要的尾部部分$1
awk '{sub(/\.png.*$/,"",$1); print $1","$2}' file
或者(也许更笨拙)
awk '{sub(/\.png.*$/,"",$1)}1' OFS=, file
答案2
您可以尝试下面的 awk 解决方案 -
awk 'BEGIN{FS=".png| "} {print $1,$NF}' kk.txt |tr ' ' ','
使用多个字段分隔符。