我有一个变量,其中包含命令whereis ls
的结果,即:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
我需要搜索这个变量并检索这个特定部分并将其保存到一个新变量 newVar 中:
/bin
我试过echo $var | awk '{print $2}'
但这抓住了/bin/ls
然后我需要搜索我的 $PATH 变量,找到子字符串/bin:(我以某种方式将我的 newVar 视为匹配项(并以某种方式删除这部分$PATH并更新$PATH以反映该更改。 对bash脚本很陌生,任何帮助将不胜感激。
你可以只使用dirname
和which
:
dirname "$(which ls)"
您可以使用此awk
:
whereis ls | awk '{sub(//ls$/, "", $2); print $2}'
sub
功能从whereis
输出的第二列开始带尾随/ls
。
$ echo "$var" | cut -d/ -f2
bin