我在shell脚本中运行了这个命令 -
echo grep datadir /etc/my.cnf
这是我得到的输出 -
datadir=/var/lib/mysql
如何才能将输出设为 -
/var/lib/mysql
答案 0 :(得分:2)
怎么样:
[cnicutar@fresh ~]$ echo $str
datadir=/var/lib/mysql
[cnicutar@fresh ~]$ echo ${str#*=}
/var/lib/mysql
在ABS了解有关这些操作的详情。
答案 1 :(得分:2)
将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
答案 2 :(得分:1)
将cut
与-d选项
grep datadir /etc/my.cnf | cut -d = -f 2
答案 3 :(得分:0)
通过sed 's/^datadir=//'
进行管道传输,这意味着“无需替换前导datadir=
”。