在bash脚本中使用基本sed

时间:2018-10-16 10:12:11

标签: bash sed

我确定这很简单。但是,它对我不起作用。请问我做错了什么愚蠢的事?我正在运行以下shell脚本,如下所示:

bash test1.sh

代码如下:

#!/bin/bash
bluesman_a="Magic Slim"
bluesman_b=($echo "$bluesman_a" | sed "/s/Slim/Sam/")
echo $bluesman_b

我得到:

syntax error near unexpected token `|'

感谢您的时间

1 个答案:

答案 0 :(得分:1)

您需要使用"$(...)"来包装命令以将输出分配给变量,并且需要删除/替换命令中的第一个sed。另外,您无需使用echo将变量传递给sed

bluesman_b="$(sed 's/Slim/Sam/' <<< "$bluesman_a")"

或者,一次将Slim替换为Sam,请使用

bluesman_b="${bluesman_a/Slim/Sam}"

请参见10.1. Manipulating Strings

请参见online Bash demo