当前位置: 技术问答>linux和unix
求帮助,AWK处理文件的问题
来源: 互联网 发布时间:2016-07-04
本文导语: 2个问题 有个文档是从别的系统上过来的。 具体格式是这样的 234234 5432123 5457654 245245 567454235 234234 5432123 5457654 245245- 567454235 1 234234 5432123 5457654 245245 567454235 234234 543212...
2个问题
有个文档是从别的系统上过来的。
具体格式是这样的
234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245- 567454235
1 234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245- 567454235
第一个问题:
第四个字段后面带个负号说明这个数字是负值,怎么用AWK把负号转移到数字前面去
245245- => -245245 比较说明的是这些任何字段的任何数字都有可能是负的
只要遇到最后一个是-号就要移到前面去u
第二个问题
第三行有个1是分页的标识,想把那个1去掉,
请问这2个问题怎么解决 使用AWK解决。
有个文档是从别的系统上过来的。
具体格式是这样的
234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245- 567454235
1 234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245 567454235
234234 5432123 5457654 245245- 567454235
第一个问题:
第四个字段后面带个负号说明这个数字是负值,怎么用AWK把负号转移到数字前面去
245245- => -245245 比较说明的是这些任何字段的任何数字都有可能是负的
只要遇到最后一个是-号就要移到前面去u
第二个问题
第三行有个1是分页的标识,想把那个1去掉,
请问这2个问题怎么解决 使用AWK解决。
|
awk '{for(i=1;i= 300 ){printf("%s ", $i);} if( substr($i, length($i),1) == "-" ){printf("-%s ", substr($i, 1, length($i)-1));} }printf("n")}' csdn.txt
把300换成你的最大页数应该就可以了,写的有点乱,肯定不是最好了,懒的弄了,但是好用,期待高手
把300换成你的最大页数应该就可以了,写的有点乱,肯定不是最好了,懒的弄了,但是好用,期待高手
|
awk '{if($1=="1"){$1=""}else{$1=" "$1};for(i=1;i