Echo完整目录

时间:2017-06-09 16:06:05

标签: bash concatenation

我正在尝试搜索目录以查找具有特定文本字符串的文件并回显整个目录,但我对我看到的输出感到困惑。

当前Bash脚本:

#!/bin/bash
cd /home/$USER/.remmina/
p=/home/$USER/.remmina/
f=&(grep -ir $USER --label=/home/$USER/.remmina/) | sed 's/[:].*//'
pgrep remmina && echo Remmina is currently running. || echo $p$f

哪个输出:

1497018901448.remmina
/home/testuser1/.remmina/

我想要的是:

/home/testuser1/.remmina/1497018901448.remmina

让我更加困惑的是,只是回显$ p有相同的输出,但回显$ f只会导致文件名,这似乎意味着文件名被删除,否则它应该输出两次,对吧?

1 个答案:

答案 0 :(得分:1)

怎么样:

grep -Ril "searchString" $PWD

如果将绝对路径作为起始目录传递,则返回的匹配也将是绝对路径。 $PWD为您提供当前的工作目录,但显然任何绝对路径都可以。

如果只需要目录部分,请使用dirname命令解析字符串。也许是这样的:

grep -Ril "searchString" $PWD | while read line; do dirname $line; done