[英]Remove certain characters in shell script
我在shell腳本中運行了此命令-
echo grep datadir /etc/my.cnf
這是我得到的輸出-
datadir=/var/lib/mysql
我應該怎么做才能使輸出為-
/var/lib/mysql
怎么樣:
[cnicutar@fresh ~]$ echo $str
datadir=/var/lib/mysql
[cnicutar@fresh ~]$ echo ${str#*=}
/var/lib/mysql
在ABS上了解有關這些操作的更多信息。
用管道輸送grep的輸出:
$ echo 'datadir=/var/lib/mysql' | cut -d '=' -f 2
/var/lib/mysql
如果文件中有空格,則可能會出現問題(請注意輸出中的縮進):
$ echo 'datadir = /var/lib/mysql' | cut -d '=' -f 2
/var/lib/mysql
您可以使用awk規避此問題:
$ echo 'datadir = /var/lib/mysql' | awk -F '[[:space:]]*=[[:space:]]*' '{print $2}'
/var/lib/mysql
使用帶有-d選項的cut
grep datadir /etc/my.cnf | cut -d = -f 2
通過sed 's/^datadir=//'
傳遞它,這意味着“用任何內容替換前導的datadir=
”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.