不好意思,就是问题不够完善,比如这些行中,有的行最后一位是点,有的不是,首先应该要进行一下判断,应该怎么写了?
追答你的意思是?只删除字符,如果最后一个字符是点则保持不变?如果是这样的话,改成如下:
#!/bin/bash
awk '{
gsub(/[^\.]$/,"")
print
}' xx37.dat
刚才试了你的果然很好用,另外一个我也试出来了。相当感谢。继续问一下,如果我想根据每一行的第三字段来统计个数应该怎么办了?就是如果第三字段不同个数+1,如果相同就不增加。回答一定加分啊。
追答试一下下边这个
awk '{ary[$3]++}
END{
for(key in ary)
print key " " ary[key]
}' file
...如abc.def.hig. 有1000行相同格式,想删除最后一个.
y:root:\/tmp\/ss> cat xx37.dat abc def ghi jkl mno pqr stu vwx yzz 132 y:root:\/tmp\/ss> cat xx37 !\/bin\/bash awk '{ gsub(\/.$\/,"")print }' xx37.dat