永发信息网

awk 处理多个文件

答案:2  悬赏:40  手机版
解决时间 2021-02-27 01:21
我现在有Free_1, Free_2 .... Free_30这样的很多文件,需要读出他们的第2列与分别与另外的Green_1, Green_2...Green_30做减法。我想写个循环,为何总是awk不能读入有变量的文件名。怎么做啊?

for a in $(seq 1 1 30)
do
b=`awk '{print $2}' Free_$a`
c=`awk '{print $2}' Green_$a`
awk '{print '$b'-'$c'}' > delta_$a
done
最佳答案
[root@localhost ~]# cat a
for i in `ls Free_*`
do
    b=`awk '{print \$2}' $i`
    d=`ls $i|awk -F_ '{print \$2}'`
    c=`awk '{print \$2}' Green_$d `
    expr $b - $c >delta_$d
done
[root@localhost ~]# cat Free_1 
df 12 12
[root@localhost ~]# cat Green_1 
asd 34 h

[root@localhost ~]# sh -x a
++ ls Free_1
+ for i in '`ls Free_*`'
++ awk '{print $2}' Free_1
+ b=12
++ ls Free_1
++ awk -F_ '{print $2}'
+ d=1
++ awk '{print $2}' Green_1
+ c=34
+ expr 12 - 34
[root@localhost ~]# cat delta_1 
-22

你的脚本:
[root@localhost ~]# cat a
for i in `seq 1 1 30`
do
    b=`awk '{print \$2}' Free_$i`
    c=`awk '{print \$2}' Green_$i `
    expr $b - $c >delta_$d
done

主要是执行减法的时候报错,不用awk那样处理,awk后面必须接输入源
全部回答
seq 1 30?或for((a=1;a<=30;i++)) Free_$a.***?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
苏北义乌国际商贸城在什么地方啊,我要过去处
求墨然回首作品集百度云谢谢
雪地棉能用洗衣机洗吗?
中国石油洞子口加油站地址在什么地方,想过去
长春市双阳区人民法院太平人民法庭地址有知道
请问民国九年铜元、正面孙中山侧像背面嘉禾一
_______ an important role in a new movie,
7+2.4(x-3) +2×4=7+1.6+1.6(2x-3)
自行车上海市区出发穿越崇明岛登陆启东路线请
一本书的总页数用百分数表示可以写什么?
违章缴费需要带什么
下图为某髙等植物叶肉细胞结构模式图,下列叙
吉祥家园三区在什么地方啊,我要过去处理事情
QQ登录帐号历史是存在哪个文件夹或文件内
白绸缎,见过好多古代女主用来打人,那个叫什
推荐资讯
如图,为人体内气体交换示意图,请据图回答:
聚氨酯怎么清洗
成祥装饰怎么去啊,有知道地址的么
什么是动态数据采集?什么是静态数据采集?
我国哪位科学家在《哥德巴赫猜想》上有杰出贡
襄瑞路/官井巷(路口)在什么地方啊,我要过去
气象预报发报系统属于气象自动观测系统吗
支付宝零钱用蚂蚁花呗体现免息要还款吗
分数的加法、减法、乘法混合在一起的时候,运
根据我国《合同法》规定,对格式条款的理解发
口袋妖怪漆黑魅影你怎么样才能找到两个羽毛
总加偏旁组新字并组词
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?