- 论坛徽章:
- 0
|
本帖最后由 qaflinux 于 2013-01-27 22:22 编辑
我有几个文件,文件名都规律的,文件1的名字为:EC0001,文件2的名字为:EC0002,文件3的名字为:EC0003,。。。。
指定的文件内有以上的几个文件名,a 文件
比如:
1)文件1:EC0001的内容为
how are you,
I'm fine,and you.
2)而文件1的名字在a文件中的某个地方,比如:
-What are you doing here?
EC0001
-Tyler invited me.
3)结果是:在a 文件的内容是这样的:
-What are you doing here?
how are you,
I'm fine,and you. //结果是把EC0001文件中的内容替换了a文件中的EC0001;想要的结果是这样的。
-Tyler invited me.
现在是要从文件a中查找出EC0001,然后在当前的目录是找到EC0001文件并把这个文件的内容替换掉a文件中的EC0001;现在有很多这样的文件需要导入到a文件中。
想不出来,求大神帮忙写出shell代码
------------------------------------------------
答案:
方法一:
for i in $(ls EC*);do sed -in-splace-e "/$i/r $i" -e "/$i/d" a;done
方法二:
awk '$0 !~ /^EC/{print $0} $0 ~ /^EC/ {system("cat " $1)}' a |
|