如何替换 bash 中的所有引号 ' "
how to replace all quotes ' " in bash
我想用 bash 命令删除简单的 ' 和双引号 ",但我不能用 bash 命令删除 '。
我不知道我做错了什么,但是这个命令给我一个错误,有人知道吗?
user_download_dir_folder=$(echo ${user_download_dir_folder} | sed "s/\"\'//g")
您可以使用 string manipulation or tr
:
user_download_dir_folder=$(tr -d \"\' <<< "$user_download_dir_folder")
# OR
user_download_dir_folder="${user_download_dir_folder//[\"\']/}"
看到 online demo:
#!/bin/bash
user_download_dir_folder="12\"4'5"
user_download_dir_folder=$(tr -d \"\' <<< "$user_download_dir_folder")
echo "$user_download_dir_folder"
## => 1245
user_download_dir_folder="12\"4'5"
user_download_dir_folder="${user_download_dir_folder//[\"\']/}"
echo "$user_download_dir_folder"
## => 1245
sed "s/\"\'//g"
的问题是您试图匹配 "
后跟 '
。您应该将它们放在 方括号表达式 中或匹配任一引号。
假设这是您的输入:
user_download_dir_folder="abc\"1'23'foo\"bla"
echo "$user_download_dir_folder"
abc"1'23'foo"bla
您可以这样使用sed
:
sed "s/[\"']//g" <<< "$user_download_dir_folder"
abc123foobla
或在bash中:
echo "${user_download_dir_folder//[\'\"]/}"
abc123foobla
非常感谢,它正在工作。最后我做到了
user_download_dir_folder=$(echo ${user_download_dir_folder} | sed "s/\"//g" | sed "s/'//g") #remove ' and "
但是你的方案要好很多,这个方案也比较优雅,没想到
我想用 bash 命令删除简单的 ' 和双引号 ",但我不能用 bash 命令删除 '。 我不知道我做错了什么,但是这个命令给我一个错误,有人知道吗?
user_download_dir_folder=$(echo ${user_download_dir_folder} | sed "s/\"\'//g")
您可以使用 string manipulation or tr
:
user_download_dir_folder=$(tr -d \"\' <<< "$user_download_dir_folder")
# OR
user_download_dir_folder="${user_download_dir_folder//[\"\']/}"
看到 online demo:
#!/bin/bash
user_download_dir_folder="12\"4'5"
user_download_dir_folder=$(tr -d \"\' <<< "$user_download_dir_folder")
echo "$user_download_dir_folder"
## => 1245
user_download_dir_folder="12\"4'5"
user_download_dir_folder="${user_download_dir_folder//[\"\']/}"
echo "$user_download_dir_folder"
## => 1245
sed "s/\"\'//g"
的问题是您试图匹配 "
后跟 '
。您应该将它们放在 方括号表达式 中或匹配任一引号。
假设这是您的输入:
user_download_dir_folder="abc\"1'23'foo\"bla"
echo "$user_download_dir_folder"
abc"1'23'foo"bla
您可以这样使用sed
:
sed "s/[\"']//g" <<< "$user_download_dir_folder"
abc123foobla
或在bash中:
echo "${user_download_dir_folder//[\'\"]/}"
abc123foobla
非常感谢,它正在工作。最后我做到了
user_download_dir_folder=$(echo ${user_download_dir_folder} | sed "s/\"//g" | sed "s/'//g") #remove ' and "
但是你的方案要好很多,这个方案也比较优雅,没想到