Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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中的空白(无子进程)_Bash_Whitespace_String Matching_Removing Whitespace - Fatal编程技术网

删除bash中的空白(无子进程)

删除bash中的空白(无子进程),bash,whitespace,string-matching,removing-whitespace,Bash,Whitespace,String Matching,Removing Whitespace,我在变量中有一个字符串,希望删除所有空格。我只想用bash来做。目前,我只删除空格,但我想删除标签也在一个步骤 string="test string 1" # first whitespace in string is tab second is space echo ${string// /} # the whitespace between // is space; output: test string1 echo ${string// /} # the whitespace

我在变量中有一个字符串,希望删除所有空格。我只想用bash来做。目前,我只删除空格,但我想删除标签也在一个步骤

string="test    string 1" # first whitespace in string is tab second is space
echo ${string// /} # the whitespace between // is space; output: test   string1
echo ${string// /} # the whitespace between // is tab; output: teststring 1 
宽空白是制表符。第三个
/
可以删除


@anubhava我从文件中逐行读取这些字符串,因此字符串中没有换行符。因此,删除所有空格不会造成任何伤害。

与其尝试替换空格,不如使用与任何空格匹配的字符类:

[:space://code>表示
[\t\r\n\v\f]
,即它将匹配空格、制表符、回车符、换行符和换行符

如前所述,您可以使用character类
[:blank://删除水平空白:

echo "${string//[[:blank:]]/}"
如果只想删除空格和制表符,请说:

echo "${string//[ $'\t']/}"

与其尝试替换空格,不如使用匹配任何空格的字符类:

[:space://code>表示
[\t\r\n\v\f]
,即它将匹配空格、制表符、回车符、换行符和换行符

如前所述,您可以使用character类
[:blank://删除水平空白:

echo "${string//[[:blank:]]/}"
如果只想删除空格和制表符,请说:

echo "${string//[ $'\t']/}"

两件事:在你的
$string
中什么是tab,什么是空格?此外,尽管这对这种情况没有影响,但要正确查看输出,最好
回显“$var”
@user2546460是否也要从字符串中删除换行符?两件事:在
$string
中,什么是选项卡,什么是空格?另外,虽然这对这种情况没有影响,但要正确查看输出,最好
回显“$var”
@user2546460是否也要从字符串中删除换行符?还有
[:blank:://code>,它只是“水平”空格:@glennjackman谢谢。年龄的影响正在显现出来。我将更新答案以添加您提到的内容。还有
[:blank://code>,它只是“水平”空格:@glennjackman谢谢。年龄的影响正在显现出来。我将更新答案以添加您提到的内容。