作业帮 > 综合 > 作业

linux下用sed或者awk处理一个文件

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 05:46:15
linux下用sed或者awk处理一个文件
文件的形式为:
math 5
0084 7
0086 5
0078 8

输出文件为:
0084 math 5 7
0086 math 5 5
0078 math 5 8

请问怎么用linux下的sed或者awk处理啊?就是把第一行当做字符串取了,添加到后面每一行的$1 和 $2之间
[root@localhost ~]# cat test
math 5
0084 7
0086 5
0078 8
[root@localhost ~]# awk '{if(NR==1) var=$0;else print $1,var,$2}' test
0084 math 5 7
0086 math 5 5
0078 math 5 8
再问: 谢谢!那如果有好几个文件要作这样的处理 然后把处理后的文件用cat合并,那应该怎么做才不产生中间文件呢? 能不能用管线?比如我执行
for i in $*
do
awk ' 。。。。' i
done
然后用 cat $* >new 这样的 应该怎么弄呢?
再答: #!/bin/bash
if [ -f newfile.txt ];then
  rm -f newfile.txt
fi
for i in $*
do
  awk '{if(NR==1) var=$0;else print $1,var,$2}' $i >>newfile.txt
done