Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 需要sed命令来替换axpression的中间部分_Bash_Sed - Fatal编程技术网

Bash 需要sed命令来替换axpression的中间部分

Bash 需要sed命令来替换axpression的中间部分,bash,sed,Bash,Sed,我正在寻找允许移动的sed表达式: expression1\expression2\expression3 到 当然,expression2在我需要执行命令的所有文件中都是不同的 目前,我的解决方案是将重点放在表达式2之间的两个'\',但我找不到正则表达式来匹配两个已知字符之间的任何单词 想一次完成吗?您可以尝试使用下面的sed命令将\中存在的所有字符(包括\)替换为\ $ echo 'expression1\expression2\expression3' | sed 's~\\.*\\~\

我正在寻找允许移动的sed表达式:

expression1\expression2\expression3

当然,expression2在我需要执行命令的所有文件中都是不同的

目前,我的解决方案是将重点放在表达式2之间的两个
'\'
,但我找不到正则表达式来匹配两个已知字符之间的任何单词


想一次完成吗?

您可以尝试使用下面的sed命令将
\
中存在的所有字符(包括
\
)替换为
\

$ echo 'expression1\expression2\expression3' | sed 's~\\.*\\~\\~g'
expression1\expression3
$ echo 'expression1\expression2\expression3' | sed 's~\\[^\\]*\\~\\~g'
expression1\expression3

您可以尝试使用下面的sed命令将
\
(包括
\
)中存在的所有字符替换为
\

$ echo 'expression1\expression2\expression3' | sed 's~\\.*\\~\\~g'
expression1\expression3
$ echo 'expression1\expression2\expression3' | sed 's~\\[^\\]*\\~\\~g'
expression1\expression3
您可以使用awk:

s='expression1\expression2\expression3'
awk 'BEGIN{FS=OFS="\\"} {print $1, $3}' <<< "$s"
expression1\expression3
s='expression1\expression2\expression3'
awk'BEGIN{FS=OFS=“\\”}{print$1,$3}'您可以使用awk:

s='expression1\expression2\expression3'
awk 'BEGIN{FS=OFS="\\"} {print $1, $3}' <<< "$s"
expression1\expression3
s='expression1\expression2\expression3'
awk'BEGIN{FS=OFS=“\\”}{print$1,$3}