1.提取数字到变量
temp=`echo "helloworld20180719" | tr -cd "[0-9]" `
echo $temp
输出 20180719
2.重定向到文件
echo "helloworld20180719" | tr -cd "[0-9]">mid.txt
cat mid.txt
输出20180719
>表示 重定向输出到文件,如果文件不存在,会自动创建,如果文件存在,会清空文件。
>>表示追加输出到文件,同样,文件不存在就好创建,文件存在的话会追加新的内容到文件的末尾,原有内容不会影响到。
我们写脚本时经常会使用到>>将标准错误输出及信息重定向到日志文件中。
2>&1表示把 标准错误输出 重定向到 标准输出
&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中
3.解释一下 | tr -cd "[0-9]"
|其实就是管道描述符,将上个指令的标准输出。作为下个指令的标准输入
如echo "helloworld20180719" | tr -cd "[0-9]"
意思就是将"helloworld20180719"这句话作为 tr -cd "[0-9]"的输入
tr其实是translate的缩写,主要用于删除文件中的控制字符,或进行字符转换
-d表示删除,[0-9]表示所有数字,-c表示对条件取反
所以tr cd "[0-9]"这句话的意思就是,剔除非数字的字符。
即输出20180719