91 这应该很容易:我想对文字字符串而不是输入文件运行sed。如果您想知道为什么,例如是编辑存储在变量中的值,而不必是文本数据。 当我做: sed 's/,/','/g' "A,B,C" 其中A,B,C是我要更改为A','B','C的文字 我懂了 Can't open A,B,C 好像它认为A,B,C是一个文件。 我试着用管道将其回显: echo "A,B,C" | sed 's/,/','/g' 我得到提示。 正确的做法是什么? linux unix sed — 两栖的 source
148 您有单引号冲突,因此请使用: echo "A,B,C" | sed "s/,/','/g" 如果使用 重击,您也可以这样做(<<<是here-string): sed "s/,/','/g" <<< "A,B,C" 但不是 sed "s/,/','/g" "A,B,C" 因为sed期望文件作为参数 编辑: 如果您使用 sh 或任何其他: echo string | sed ... — 吉尔·奎诺(Gilles Quenot) source 1 奇怪,对我不起作用...意识到它是在一段时间前发布的,但是如果这是问题,就应该弃用它 — 超级英雄
5 我的版本在bash脚本中使用变量: 查找任何反斜杠并替换为正斜杠: input="This has a backslash \\" output=$(echo "$input" | sed 's,\\,/,g') echo "$output" — 植酸 source