bash的元字元(下),bash字元
` |
“Esc”鍵正下方鍵,替換命令 |
PS1=`command` |
{} |
在當前shell中執行命令 |
{command1;command2} |
| |
建立命令間的管道 |
command1 | command2 |
; |
分割順序執行的命令 |
command1; command2 |
< |
重新導向命令的輸入 |
command < file |
> |
重新導向命令的輸出 |
command > file |
? |
匹配單個字元 |
lab.? |
/ |
用作根目錄或者路徑名中的分割符 |
/usr/bin |
\ |
逸出字元;轉義斷行符號換行字元,允許在下一行中繼續shell命令 |
command arg1 \arg2 arg3\? |
! |
啟動歷程清單中的命令和當前命令 |
!!,!4 |
~ |
代表主目錄 |
~/.bashrc |
怎用bash處理以下字串
如果這幾行字串是儲存在某個文本中的(文本名字為$FILE1):
用下面的命令可以直接將常值內容更新為你想要的內容:
sed -i 's/\(.*\)\.\(.*\):$/\1 \2/' $FILE1
用下面的命令可以將常值內容按你的要求處理後在終端輸出:
sed -e 's/\(.*\)\.\(.*\):$/\1 \2/' $FILE1
你可以加重新導向符號處理結果輸出到另一個文本:
sed -e 's/\(.*\)\.\(.*\):$/\1 \2/' $FILE1 >> $FILE2
如果你要處理的這兩行字串不是儲存在文本中的,可以用下面命令實現你的需求:
echo "2012-05-22 15:56:45 192.168.0.63 113.108.86.52.80:" | sed -e 's/\(.*\)\.\(.*\):$/\1 \2/'
第二行的處理類似.
bash 字串問題
你試一下下面的例子就知道了
name="wangqingping"
echo ${name#"w.*g"}
echo ${name##"w.*g"}
其中.*代表任意多個字元。
這樣的話,
.*
最長相符angqingpin
最短匹配an