免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: cqs1015
打印 上一主题 下一主题

如何合并A,B文件成C文件? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-02-22 15:39 |只看该作者
原帖由 todayhero 于 2008-2-22 12:26 发表
php写的


学习了

论坛徽章:
0
12 [报告]
发表于 2008-02-22 20:05 |只看该作者

回复 #9 7717060 的帖子

这样格式不对吧,兄弟

论坛徽章:
0
13 [报告]
发表于 2008-02-23 12:12 |只看该作者
fang@bash ~
$ cat filea
alter database rename file 'f:\oracle\oradata\system01.dbf' to
alter database rename file 'f:\oracle\oradata\undots01.dbf' to
alter database rename file 'f:\oracle\oradata\tools.dbf' to
alter database rename file 'f:\oracle\oradata\user01.dbf' to

fang@bash ~
$ cat fileb
'T:\oracle\oradata\system01.dbf'
'T:\oracle\oradata\undots01.dbf'
'T:\oracle\oradata\tools.dbf'
'T:\oracle\oradata\user01.dbf'

fang@bash ~
$ cat test.sh
#! /bin/bash

  while read -r a
    do
      while read -r b
        do
          echo "$a $b"
        done < fileb
     done < filea

fang@bash ~
$ sh test.sh
alter database rename file 'f:\oracle\oradata\system01.dbf' to 'T:\oracle\oradata\system01.dbf'
alter database rename file 'f:\oracle\oradata\system01.dbf' to 'T:\oracle\oradata\undots01.dbf'
alter database rename file 'f:\oracle\oradata\system01.dbf' to 'T:\oracle\oradata\tools.dbf'
alter database rename file 'f:\oracle\oradata\system01.dbf' to 'T:\oracle\oradata\user01.dbf'
alter database rename file 'f:\oracle\oradata\undots01.dbf' to 'T:\oracle\oradata\system01.dbf'
alter database rename file 'f:\oracle\oradata\undots01.dbf' to 'T:\oracle\oradata\undots01.dbf'
alter database rename file 'f:\oracle\oradata\undots01.dbf' to 'T:\oracle\oradata\tools.dbf'
alter database rename file 'f:\oracle\oradata\undots01.dbf' to 'T:\oracle\oradata\user01.dbf'
alter database rename file 'f:\oracle\oradata\tools.dbf' to 'T:\oracle\oradata\system01.dbf'
alter database rename file 'f:\oracle\oradata\tools.dbf' to 'T:\oracle\oradata\undots01.dbf'
alter database rename file 'f:\oracle\oradata\tools.dbf' to 'T:\oracle\oradata\tools.dbf'
alter database rename file 'f:\oracle\oradata\tools.dbf' to 'T:\oracle\oradata\user01.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\system01.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\undots01.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\tools.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\user01.dbf'

fang@bash ~
$

论坛徽章:
0
14 [报告]
发表于 2008-02-23 12:28 |只看该作者
sorry , correct

$ cat test.sh
while read -r a
  do
while read -r b
   do
   c="$b"  
   done < filea
  echo "$c $a"
done < fileb

fang@bash ~
$ sh test.sh
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\system01.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\undots01.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\tools.dbf'
alter database rename file 'f:\oracle\oradata\user01.dbf' to 'T:\oracle\oradata\user01.dbf'

fang@bash ~
$

论坛徽章:
0
15 [报告]
发表于 2008-02-23 20:34 |只看该作者
原帖由 chenwenming 于 2008-2-21 21:26 发表
paste 这个命令是比较好的选择   但awk也可以实现的

awk  'NR==FNR{a=$0}NR>FNR&&a[m=m++]{print $0,a[m++]}'  B  A  >C



awk 'NR==FNR {k=$0} NR>FNR { print $0,k[m++]}'  B A  >C

awk为什么要多用两个变量i,m来实现呢?既然知道了NR,FNR变量,直接使用就可以了
  1. awk 'NR==FNR {a[FNR]=$0} NR>FNR { print $0,a[FNR]}' B A > C
复制代码

论坛徽章:
0
16 [报告]
发表于 2008-02-23 20:50 |只看该作者

回复 #15 jinl 的帖子

主要是我对 NR 与 FNR 两个变量理解不够。 学习了。

论坛徽章:
0
17 [报告]
发表于 2008-02-24 16:16 |只看该作者
原帖由 twf_cc 于 2008-2-23 12:28 发表
sorry , correct

$ cat test.sh
while read -r a
  do
while read -r b
   do
   c="$b"  
   done < filea
  echo "$c $a"
done < fileb

fang@bash ~
$ sh test.sh
alter database rename ...

使用shell直接读取两个文件的内容,然后合并即可,不需要两次循环(当然要求文件行数一致)

  1. while read -u3 i && read -u4 j;do
  2. echo "$i $j"
  3. done 3<filea 4<fileb
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP