已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我想在一个文件中的特定行的开头添加“no”,方法是在另一个文件中循环,如下所示:
while read -r line;
do
sed -i "s/^$line/no $line/g" "${Temp_conf}"
done < temp_file #file with list of strings I want to find in $Temp_conf
脚本在一个字符串方面存在问题:switchport port-security maximum 2
。它还向switchport port-security maximum 10
添加了“no”,但这对于我的任务来说是不可接受的。我尝试使用\< \> \b
修改sed中的搜索,尝试不同的分隔符|
,但它们都没有做任何更改
1条答案
按热度按时间gr8qqesn1#
使用
awk
,你可以在概念上做类似的事情。需要根据你的需求和测试进行改进。除了使用
sponge
,你也可以将每一行存储在另一个数组中,然后使用for
循环在END
中打印该数组,其中重定向的输出接收器是FILENAME
,但你必须小心排序。阅读一些awk手册或查找示例。你也可以使用gawk的inplace模式,但这有点棘手,因为你必须在第一个文件中禁用它,然后通过控制一些参数的值在第二个文件中启用它。