【发布时间】:2016-02-20 20:44:43
【问题描述】:
我有两个不同的文件:
文件 1 包含:
idd = home_mine
password = my_password
文件 2 包含:
// some generic information
otherfields = generic
idd = generic_id
psk = generic_password
last_fields = generic_last
我想将 file2 中的 'iid' 替换为 file1 中包含的 idd。
我想用 file1 中包含的 password 替换 file2 中的 'psk'。 (我希望 file1 密码字段与 psk 不同)。
所以 file2 看起来像:
//some generic info
otherfields = generic
iid = home_mine
psk = my_password
last_fields = generic_last
是否有可以执行此操作的 sed 脚本? 速度或效率不是问题。
谢谢。
【问题讨论】:
-
我认为它是这样的,但我已经让它工作了:
-
读行时;执行 sed "/idd/s/$/$line/g \c" file2 完成
-
你的输出去哪儿了?我想你想在 OSX 上使用
sed -i '/idd/....' file2,sed -i"" /idd/.../.../' file2,或者如果你使用的是旧的 unixen 系统,那么sed '/idd/.../.../' file2 > file2.out && mv file2.out file2。我也看不出/g在这种情况下有什么帮助。使用解决方案扩展您的评论作为答案,我们可以在其中复制/粘贴您的示例,您可以接受它以获得宝贵的声誉积分。我也会赞成它,因为它的价值。祝你好运。 -
我有这个 sed 脚本工作,但它在一个文件中。我想要一个非技术人员可以轻松编辑的简单文件:
-
/bin/sed -i '/iid=/ c\ iid="home_mine"' ./file2, /bin/sed -i '/ psk=/ c\ password=my_passwork' ./文件2