我想知道什麼是檢查一個
$str
以最好的方式看它是否包含任何字符
[email protected]#$%^&*()_+
我想用ASCI值但有點糊塗了關於究竟如何,將可以實現的。
或者如果有更簡單的方法來檢查字符串值
我想知道什麼是檢查一個
$str
以最好的方式看它是否包含任何字符
[email protected]#$%^&*()_+
我想用ASCI值但有點糊塗了關於究竟如何,將可以實現的。
或者如果有更簡單的方法來檢查字符串值
匹配它與glob。你只需要逃避的外殼,否則認爲特殊的人物:
#!/bin/bash
str='some text with @ in it'
if [[ $str == *['!'@#\$%^\&*()_+]* ]]
then
echo "It contains one of those"
fi
使用EXPR
str='some text with @ in it'
if [ `expr "$str" : ".*[[email protected]#\$%^\&*()_+].*"` -gt 0 ];
then
echo "This str contain sspecial symbol";
fi
這是便攜式衝等人。和恕我直言更優雅。
case $str in
*['!'@#$%^&*()_+]*) echo yup ;;
esac
我想一個簡單的做法就像刪除任何字母數字字符和空格。 echo "$str" | grep -v "^[a-zA-Z0-9 ]*$"
如果你有一堆字符串,然後把它們放在一個文件,如strFile和以下命令將做必要的。
cat strFile | grep -v "^[a-zA-Z0-9 ]*$"
如果你只是想檢查非字母數字,順便說一下,這將是'[$海峽= * [^ [:alnum:]] *]'。 – 2014-10-29 03:13:14
...或者檢查任何/各種標點,'[[$ str = * [[:punct:]] *]]'。一般來說,使用POSIX字符類(Linux中的man 7 regexp中的任何字符類都可以工作,即使glob樣式不是POSIX RE),而不是一個一個地列出字符是個好主意,如果有一個適合你(或者說否定)的角色類。 – 2014-10-29 03:15:05