BASH:使用 awk 解析变量



我有一个变量,其中包含命令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脚本很陌生,任何帮助将不胜感激。

你可以只使用dirnamewhich

dirname "$(which ls)"

您可以使用此awk

whereis ls | awk '{sub(//ls$/, "", $2); print $2}'

sub功能从whereis输出的第二列开始带尾随/ls

$ echo "$var" | cut -d/ -f2
bin

最新更新