加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Unix / Linux中格式化文件?

发布时间:2020-12-15 21:20:57 所属栏目:安全 来源:网络整理
导读:我有一个包含国家,目录号,年份,描述和价格的文件 Kenya 563-45 1995 Heron Plover Thrush Gonolek Apalis $6.60Surinam 632-96 1982 Butterfliers $7.50Seychelles 831-34 2002 WWF Frogs set of 4 $1.40Togo 1722-25 2010 Cheetah,Zebra,Antelope $5.70 文
我有一个包含国家,目录号,年份,描述和价格的文件

Kenya 563-45 1995 Heron Plover Thrush Gonolek Apalis $6.60
Surinam 632-96 1982 Butterfliers $7.50
Seychelles 831-34 2002 WWF Frogs set of 4 $1.40
Togo 1722-25 2010 Cheetah,Zebra,Antelope $5.70

文件不由“制表符”或“:”分隔.它们之间只有空格.你能告诉我如何格式化这个文件(使用awk?),我如何从中找到总价.

解决方法

使用命令行perl:

$cat /your/file | perl -e '$sum=0; for(<STDIN>) { $sum += $1 if(/$([d.]+)/); }; print "$sumn"'
21.2

和awk(假设你在每行结尾都有美元):

$cat /your/file | awk '{s+=substr($NF,2)} END{ print s}'
21.2

另外,回应评论.如果要在命令行上重新格式化:

$cat /your/file | perl -e 'for(<STDIN>){@a=split /s+/; $p=pop @a; 
  $line=join "|",($a[0],$a[1],$a[2],(join" ",@a[3..$#a]),$p); print "$linen"}'

Kenya|563-45|1995|Heron Plover Thrush Gonolek Apalis|$6.60
Surinam|632-96|1982|Butterfliers|$7.50
Seychelles|831-34|2002|WWF Frogs set of 4|$1.40
Togo|1722-25|2010|Cheetah,Antelope|$5.70

如果你想要正确地做到这一点,我不是在cmd行上做的,而是编写一个正确的程序来解析它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读