藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教一個sed問題。

有如下兩個文件
文件A
aaa  dfgdfdfgdf
bbb  cvbcvcvbb

文件B的格式與A相同。我想實現這樣的功能,循環讀入文件A中的每一行。如果B文件中的第一列等於當前讀入的A文件的行第一列則用A文件的當前行替換B文件的這一行。


在循環過程中,由於sed不能直接保存修改結果,直接重定向也只能保存最後替換的那一行。請問高手如何解決。

#!/bin/bash
totalcount=`wc -l filea|awk '{print $1}'`
i=1
while [ $i -le $totalcount ]
do
   row=`sed -n ${i}p filea`
   columa=`sed -n ${i}p /mvptmac/validtable | awk '{print $1}'`
   i=`expr $i + 1`
   sed  /$columa/a\ "${row}"  fileb >/mvptmac/filec
done

請教一個sed問題。

[code]# join -a2 A B|awk '{print $1,$2}'
aaa dfgdfdfgdf
bbb cvbcvcvbb
c eti[/code]
[code]# cat A
aaa  dfgdfdfgdf
bbb  cvbcvcvbb
ccc eti[/code]
[code]# cat B
aaa  133
bbb  245
c eti[/code]
[code]# join -a2 A B|awk '{print $1,$2}'
aaa dfgdfdfgdf
bbb cvbcvcvbb
c eti[/code]



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com