这应该很容易:我想对文字字符串而不是输入文件运行 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'
我得到提示。
正确的做法是什么?
您有单引号冲突,因此请使用:
echo "A,B,C" | sed "s/,/','/g"
如果使用bash,您也可以这样做(<<<是here-string):
<<<
here-string
sed "s/,/','/g" <<< "A,B,C"
但不是
sed "s/,/','/g" "A,B,C"
因为sed期望将文件作为参数
sed
编辑 :
如果您使用ksh或任何其他:
echo string | sed ...