Chinaunix

标题: for 或者while [打印本页]

作者: tstianzy    时间: 2012-11-07 22:22
标题: for 或者while

a.txt里面有以下内容:

user1,your password is:
user2,your password is:
user3,your password is:


b.txt里面有以下内容:
abc123
123123
dddddd

想要把b.txt里面的内容(password)分别加到a.txt后面。
如:
user1,your password is:abc123
user2,your password is:123123
user3,your password is:dddddd

求助、、、感谢。
作者: lkk_super    时间: 2012-11-07 22:46
paste file1 file2
作者: dn833    时间: 2012-11-07 22:46
  1. paste -d “ ” a.txt b.txt
复制代码

作者: tstianzy    时间: 2012-11-07 23:03
回复 3# dn833


   
抱歉,user1,your password is 的前面还有两行。
line 1.、。。。。
line 2。。。。。。
user1,your password is

line 1.、。。。。
line 2。。。。。。
user2,your password is

line 1.、。。。。
line 2。。。。。。
user3,your password is
作者: zooyo    时间: 2012-11-07 23:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: tstianzy    时间: 2012-11-07 23:26
回复 5# zooyo

实在抱歉,辛苦老大了。我没表达清楚 。以下是全的。

a文件:
dn: cn=guest08,ou=dq,ou=customer,dc=domain,dc=com
changetype: modify
replace: userPassword
userPassword: 123123

dn: cn=guest09,ou=dq,ou=customer,dc=domain,dc=com
changetype: modify
replace: userPassword
userPassword: 123123

dn: cn=guest10,ou=dq,ou=customer,dc=domain,dc=com
changetype: modify
replace: userPassword
userPassword: 123123

   
b文件:
xdsfsd
edeo9
adfadf


想要把b文件的三个密码从上到下,分别替换掉a文件的123123。

非常感谢。
作者: dn833    时间: 2012-11-07 23:38
  1. [root@12 bin]# cat a.txt
  2. line 1.....
  3. line 2......
  4. user1,your password is
  5. line 1.....
  6. line 2......
  7. user2,your password is
  8. line 1.....
  9. line 2......
  10. user3,your password is
  11. [root@12 bin]# cat b.txt
  12. bc123
  13. 123123
  14. dddddd
  15. [root@12 bin]# awk 'NR%3==0{getline f2 < "b.txt"; print $0" "f2}' a.txt
  16. user1,your password is bc123
  17. user2,your password is 123123
  18. user3,your password is dddddd
复制代码
是这个意思???
作者: tstianzy    时间: 2012-11-07 23:41
回复 7# dn833

对,感谢。

   
作者: tstianzy    时间: 2012-11-07 23:45
回复 7# dn833


line 1.....
line 2......
user1,your password is abcabc
line 1.....
line 2......
user2,your password is sdfdsd
line 1.....
line 2......
user3,your password is 1efsdfd


是这个意思。带line1 和line2的
作者: zooyo    时间: 2012-11-07 23:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: tstianzy    时间: 2012-11-08 00:03
回复 10# zooyo

太牛了。能解析一下吗?我都看不懂。
   
作者: tstianzy    时间: 2012-11-08 00:05
回复 10# zooyo


    {getline i < "b";$2=i}1

这里最后的1是什么意思?前面的我知道是 将b文件的每行作为i的变量,替换掉a文件中userPassword开头行的第二列。
作者: dn833    时间: 2012-11-08 00:07
1就是print $1,i的意思
作者: dn833    时间: 2012-11-08 00:08
回复 10# zooyo


    呵呵佩服佩服~我被line3代沟里去了。。。。。。
作者: yestreenstars    时间: 2012-11-08 00:15
  1. awk '/123123/{getline i < "b";sub(/123123/,i)}1' a
复制代码

作者: cjaizss    时间: 2012-11-08 12:08
tstianzy 发表于 2012-11-07 22:22
a.txt里面有以下内容:

user1,your password is:

paste a.txt b.txt




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2