eri*_*rik 2 scripting bash tar sed
我myVar在 bash 中有一个变量,其中包含一个长字符串,如下所示:
-rw-rw-rw- root/root 16 2018-02-12 10:03 foo_tar/baz1234_
Run Code Online (Sandbox Code Playgroud)
我想删除myVar最后一个斜杠(包括最后一个斜杠)之前的所有内容,这样myVar最终只存储baz1234_. 如何删除所有内容并将结果存储在变量中?
我遇到过处理 sed 的解决方案,但那些解决文件处理的问题,因此我的问题。
您应该为此使用bash 参数扩展并使用类型的子字符串删除${PARAMETER##PATTERN}
从一开始就 -
${PARAMETER##PATTERN}这种形式是从字符串的开头删除试图匹配它的描述模式。在
##尝试与最长的文本匹配来做到这一点。
用于您的示例
$ myVar='-rw-rw-rw- root/root 16 2018-02-12 10:03 foo_tar/baz1234_'
$ echo "${myVar##*/}"
baz1234_
Run Code Online (Sandbox Code Playgroud)
正如评论中所指出的,有问题的字符串似乎ls是变量中命令的输出!这不是理想的脚本方式。更清楚地解释您的要求。
| 归档时间: |
|
| 查看次数: |
6302 次 |
| 最近记录: |