簡體   English   中英

刪除Shell腳本中的某些字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM