Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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用法_Bash_Unix_Sed - Fatal编程技术网

Bash (';)的sed用法

Bash (';)的sed用法,bash,unix,sed,Bash,Unix,Sed,关于将(“)双引号替换为(“)单引号,我对sed的用法有点困惑。我在sed中尝试了很多组合,但不知何故它不允许这种特殊的转换 任何帮助都将不胜感激 ps:我也对其他替代方法持开放态度,但它在bash(UNIX)中应该可以正常运行。您可以尝试以下方法: [ ~]$ echo "'Hello'"|sed "s/'/\"/g" "Hello" 反之亦然: [ ~]$ echo \"Hello\"|sed "s/\"/'/g" 'Hello' 否则,如果需要,可以使用tr而不是sed: [ ~]$

关于将(“)双引号替换为(“)单引号,我对sed的用法有点困惑。我在sed中尝试了很多组合,但不知何故它不允许这种特殊的转换

任何帮助都将不胜感激


ps:我也对其他替代方法持开放态度,但它在bash(UNIX)中应该可以正常运行。

您可以尝试以下方法:

[ ~]$ echo "'Hello'"|sed "s/'/\"/g"
"Hello"
反之亦然:

[ ~]$ echo \"Hello\"|sed "s/\"/'/g"
'Hello'
否则,如果需要,可以使用
tr
而不是
sed

[ ~]$ echo \"Hello\"|tr "\"" "'"
'Hello'

您可以尝试以下方法:

[ ~]$ echo "'Hello'"|sed "s/'/\"/g"
"Hello"
反之亦然:

[ ~]$ echo \"Hello\"|sed "s/\"/'/g"
'Hello'
否则,如果需要,可以使用
tr
而不是
sed

[ ~]$ echo \"Hello\"|tr "\"" "'"
'Hello'
您可以使用is作为:

s='abc"def"123'
echo "$s"|sed "s/\"/'/g"

abc'def'123
您可以使用is作为:

s='abc"def"123'
echo "$s"|sed "s/\"/'/g"

abc'def'123

要仅替换一个字符,您最好使用
tr

$ printf '%s\n' '"Hello"' | tr \" \'
'Hello'

现在,我希望您不是在用它来“清理”一些用户输入…

为了只替换一个字符,您不妨使用
tr

$ printf '%s\n' '"Hello"' | tr \" \'
'Hello'

现在,我希望您不是在用它来“清理”某些用户输入…

这可能对您有用:

sed 'y/'\''/"/' file

这可能适合您:

sed 'y/'\''/"/' file

你尝试了什么组合?我在这里得到了我的答案->…如果它不在sed中,我应该早检查一下…使用
tr
你可以做
tr''''''''''''
。你尝试了什么组合?我在这里得到了我的答案->。。。如果不是在sed的话我应该早点检查一下。。。使用
tr
可以执行
tr'''''''''''