【发布时间】:2012-02-22 09:22:33
【问题描述】:
在 bash 中,我想从命令行字符串中获取文件名。但不是当前的 ($0) 脚本!
我有一个包含参数的脚本文件。我只需要它的脚本!
例如,我有一个字符串,例如: /path/to/file parameter1 -p2
我想得到:/path/to/file(不带参数) 即使在某些情况下:
/an\ example/with.dot.in_it/.hidden_file.sh par\ ameter1 p.dot.2
./script.sh p1 p2
../script.sh p1 p2
/any////relative/../path/./to/script.sh p1 p2
所以在任何有效的 linux 路径和文件名情况下!
是否有用于此目的的正则表达式,或者是否有任何其他方法可以获得此目的?
提前致谢!
【问题讨论】:
-
您可以使用“cut”命令轻松完成并获取第一个字段,如下所示:echo "$str" |剪切 -d " " -f1
-
不,如果有空格就不会处理。将使用
$cut -d " " -f -2。
标签: regex linux path filenames