使用“&”时如何保留字段之间的空格运营商在sed

时间:2017-01-09 03:32:31

标签: sed

以下是需要替换的示例行

./some_file.c Fri Jan  6 17:24:13 MPST 2017

因此在运行sed以逃避原始字符串中的某些字符后,这就是我得到的

\.\/some_file\.c Fri Jan 6 17:24:13 MPST 2017
                        ^
                        1 less space

这是我在bash脚本中的sed命令

local escaped_temp1=$(echo $temp1 | sed --regexp-extended 's/[\/&.]/\\&/g')

我可以知道如何保留空白?

1 个答案:

答案 0 :(得分:2)

Sed没有删除带有不带引号的参数的空格echo。请改用echo "$temp1"

$ temp1='./some_file.c Fri Jan  6 17:24:13 MPST 2017'
$ echo $temp1
./some_file.c Fri Jan 6 17:24:13 MPST 2017
$ echo "$temp1"
./some_file.c Fri Jan  6 17:24:13 MPST 2017

附注:除非您确实要将\替换为\\,否则无需在括号表达式中转义/。此外,您实际上并未使用扩展的正则表达式而且不需要--regexp-extended