shell脚本,给定一个前面带若干空格的字符串,如何只保留后面的字符串
时间: 2024-03-10 18:46:12 浏览: 19
可以使用shell中的参数扩展来只保留字符串中的后面部分。假设我们要保留变量$str后面的字符串,可以使用以下命令:
```
${str##* }
```
其中,`##*`表示匹配字符串中最后一个空格及其之后的所有字符,然后将其保留。这样就可以只保留变量$str后面的字符串了。
另外,如果要保留字符串中的所有非空格字符,可以使用以下命令:
```
${str##*[^ ]}
```
其中,`[^ ]`表示匹配所有非空格字符,`##*`表示匹配字符串中最后一个非空格字符及其之后的所有字符,然后将其保留。这样就可以只保留字符串中的所有非空格字符了。
相关问题
shell脚本,给定一个前面带若干空格的字符串,如何使用sed或者awk只保留后面的字符串
可以使用sed或awk来只保留字符串中的后面部分。假设我们要保留变量$str后面的字符串,可以使用以下命令:
使用sed命令:
```
echo "$str" | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//'
```
其中,`^[[:blank:]]*`表示匹配字符串中开头的所有空格,`[[:blank:]]*$`表示匹配字符串中结尾的所有空格,然后将其删除。
使用awk命令:
```
echo "$str" | awk '{$1=""; print $0}'
```
其中,`$1`表示字符串中的第一个单词,`$0`表示整个字符串,`$1=""`表示将第一个单词设为空,然后打印整个字符串即可。
以上两个命令都可以只保留变量$str后面的字符串。
shell脚本,如何使用sed或者awk去掉字符串前面的若干空格,只保留后面的字符串
可以使用sed或awk来去掉字符串前面的若干个空格,只保留后面的字符串。假设我们要去掉变量$str前面的空格,只保留后面的字符串,可以使用以下命令:
使用sed命令:
```
echo "$str" | sed 's/^[[:blank:]]*//'
```
其中,`^[[:blank:]]*`表示匹配字符串中开头的所有空格,然后将其删除。
使用awk命令:
```
echo "$str" | awk '{$1=""; print $0}' | sed 's/^[[:blank:]]*//'
```
其中,`$1`表示字符串中的第一个单词,`$0`表示整个字符串,`$1=""`表示将第一个单词设为空,然后打印整个字符串,再使用sed命令去掉前面的空格即可。
以上两个命令都可以去掉变量$str前面的空格,只保留后面的字符串。