相关疑难解决方法(0)

如何在unix中替换文件的字符串

经过一番谷歌搜索后,我发现 sed 命令就是我所需要的。但说实话,这个命令的标志似乎无法理解。我想要做的就是用另一个文件替换单引号字符串。word1、word2 等等都不是单/双引号的。例子:

之前:foo.txt

word1 word2 word3 'This the text that needs replacement' word4 word5
Run Code Online (Sandbox Code Playgroud)

之后:foo.txt

word1 word2 word3 'I have been replaced' word4 word5
Run Code Online (Sandbox Code Playgroud)

请注意,文本“这是需要替换的文本”不是恒定的,其内容可能会有所不同。

unix sed

3
推荐指数
1
解决办法
5725
查看次数

用包含变量中的空格的 sed 替换文本

我尝试替换文本文件中的一些文本。在我的脚本中,我存储了要在两个变量中查找和替换的文本:

$currentProductName='hello'
$configProductName='byebye'
Run Code Online (Sandbox Code Playgroud)

替换是用这一行完成的:

sed -i'.bak' 's/$currentProductName/$configProductName/g' "$projectFile"
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我的任何变量都包含空格。如果$configProductName设置为hello worldsed命令不能按预期工作。

我已经尝试过这个,但它也不起作用:

sed -i'.bak' 's/"$currentProductName"/"$configProductName"/g' "$projectFile"
sed -i'.bak' 's/\$currentProductName/\$configProductName/g' "$projectFile"
Run Code Online (Sandbox Code Playgroud)

我必须如何更改线路才能按预期工作?

linux bash sed

3
推荐指数
1
解决办法
5809
查看次数

将 sed 与 ${parameter} 一起使用

问题

我们如何在sed编辑字符串中使用变量?

例子

文件statement.txt就是这句话

我喜欢我的宠物鸟。

给定一个变量${myPet},我们如何使用中的值sed替换?bird${myPet}

什么不起作用

sed -ie 's/bird/${myPet}/g' statement.txt

结果是

我喜欢我的宠物${myPet}。

bash sed edit

2
推荐指数
1
解决办法
8819
查看次数

如何在sed命令中包含变量?

grep -F "$name" -A1000 filename | sed -n '1p;19p;24p'
Run Code Online (Sandbox Code Playgroud)

假设let a=10,b=20,c=30.在上面的grep命令中我可以用'$ap;$bp;$cp'而不是'1p;19p;24p'

另一件事,我已经给了-A1000.这意味着从1p开始考虑直到1000线,对吧?我需要在整个文件中搜索而不给出数字.

unix bash sed

0
推荐指数
1
解决办法
1451
查看次数

编辑以使用 sed 打印新行两次

我在 SSH 配置中有这个设置( /etc/ssh/sshd_config)

AllowUsers root john
Run Code Online (Sandbox Code Playgroud)

我想添加jane到行尾

AllowUsers root john jane 
Run Code Online (Sandbox Code Playgroud)

我试过了

sed -i -e '/AllowUsers/{s/:/ /g;s/.*=//;s/$/ jane/p}' /etc/ssh/sshd_config && cat /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

我一直得到这个结果

AllowUsers root john jane 
AllowUsers root john jane 
Run Code Online (Sandbox Code Playgroud)

为什么会有多余的线?


笔记

如果我以某种方式运行该命令两次

我会得到这些结果

AllowUsers root john jane 
AllowUsers root john jane 
AllowUsers root john jane 
AllowUsers root john jane 
Run Code Online (Sandbox Code Playgroud)

再次运行 x3 次,将得到这个

AllowUsers root john jane 
AllowUsers root john jane 
AllowUsers root john jane 
AllowUsers root john jane 
AllowUsers root john jane …
Run Code Online (Sandbox Code Playgroud)

unix sed

0
推荐指数
1
解决办法
61
查看次数

标签 统计

sed ×5

bash ×3

unix ×3

edit ×1

linux ×1