在bash下使用tr命令的示例
先定义一个环境变量字符串,随便赋值,我就用当前目录了
[zhang@zwfedora23 woca817c]$ echo $HELLO_PATH
/home/zhang/work/60G/woca817c/woca817c
以下是使用-c和-d选项的处理结果
只单独的使用-c需要跟两个参数,表示字符的参数,前面的字符1,后面那个是字符2。结果就是把先把
HELLOPATH中不为字符1的字符使用字符2替换。具体结果就是把
HELLO_PATH中不是”h”的字符使用”b”来替换,”h”保持不变
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c 'h' "b"
bhbbbbbhbbbbbbbbbbbbbbbbhbbbbbbbbhbbbbbbb
此时我比较好奇,如果后面跟的不是字符,而是字符串会怎么样
[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c '/' "fuck"
/kkkk/kkkkkkkk/kkkk/kkk/kkkkkkkk/kkkkkkkk[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c '/' "f"
/ffff/ffffffff/ffff/fff/ffffffff/ffffffff[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c '/' "fu"
/uuuu/uuuuuuuu/uuuu/uuu/uuuuuuuu/uuuuuuuu[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c "/" "fuck"
/kkkk/kkkkkkkk/kkkk/kkk/kkkkkkkk/kkkkkkkk[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c "home" "fuck"
khomekkhkkkkekkkokkkkkkkhkkkkkkkkhkkkkkkk[zhang@zwfedora23 woca817c]$ echo $HELLO_PATH
/home/zhang/work/60G/woca817c/woca817c
可见,结果是只是用字符2中的最后一个字符来替换$HELLO_PATH中的非字符1的所有字符。
如果字符1也是一个字符串,那么也取最后一个字符为标准去处理。即”home”中自取”e”这个字符。
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c "work" "fucb"
bbobbbbbbbbwbbbworkbbbbbbbwkbbbbbbbwkbbbb[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$
[zhang@zwfedora23 woca817c]$ echo -n $HELLO_PATH | tr -c "wokr" "fucb"
bbobbbbbbbbwbbbworkbbbbbbbwkbbbbbbbwkbbbb[zhang@zwfedora23 woca817c]$