相关疑难解决方法(0)

如何在sed命令中使用变量?

我有abc.sh:

exec $ROOT/Subsystem/xyz.sh
Run Code Online (Sandbox Code Playgroud)

在Unix机器上,如果我打印,echo $HOME那么我得到/HOME/COM/FILE.

我想更换$ROOT$HOME使用sed的.

预期产出:

exec /HOME/COM/FILE/Subsystem/xyz.sh
Run Code Online (Sandbox Code Playgroud)

我试过了,但我没有得到预期的输出:

sed  's/$ROOT/"${HOME}"/g' abc.sh > abc.sh.1
Run Code Online (Sandbox Code Playgroud)

加成:

如果我有 abc.sh

exec $ROOT/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh
Run Code Online (Sandbox Code Playgroud)

然后用

sed "s|\$INSTALLROOT/|${INSTALLROOT}|" abc.sh
Run Code Online (Sandbox Code Playgroud)

它只是首先替换$ROOT,即输出即将到来

exec /HOME/COM/FILE/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh
Run Code Online (Sandbox Code Playgroud)

unix sed

52
推荐指数
2
解决办法
11万
查看次数

如何匹配sed中的单引号

如果表达式用单引号括起来,如何匹配sed中的单引号:

sed -e '...'
Run Code Online (Sandbox Code Playgroud)

例如需要匹配此文本:

'foo'
Run Code Online (Sandbox Code Playgroud)

bash shell escaping

34
推荐指数
2
解决办法
4万
查看次数

使用sed逃脱单引号和双引号.geed,find,xargs

我有一个类似这样的命令:

find ./ -type f | xargs gsed -i -r 's/[$][A-Za-z_\'"]/testing
Run Code Online (Sandbox Code Playgroud)

我想把这个命令工作.不幸的是,单引号和双引号打破了命令.如何逃避此字符串并使此命令起作用?

这个问题心不是一样,因为这一个,因为我有一个内部的单引号[.但是,如果一个更小的修改解决问题的工作,我想知道.

我使用@,#,\尝试了几种不同的方法,但还没有成功.

regex replace escaping sed

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

标签 统计

escaping ×2

sed ×2

bash ×1

regex ×1

replace ×1

shell ×1

unix ×1