linux - Unix 通配符扩展/正则表达式

标签 linux shell unix

下面的命令会做什么?

ls -l ${INPUT%.jnl}.jnl

$INPUT 包含一些值。

最佳答案

${INPUT%.jnl}剥离 .jnl 的最短匹配项从$INPUT的背面.

然后说${INPUT%.jnl}.jnl它看起来像是一种制作$INPUT的方法存在于某物中 + .jnl并防止它出现两次.jnl最后,如果$INPUT已经包含该值。

所以 ls -l ${INPUT%.jnl}.jnl将执行 ls -l$INPUT 指示的路径/名称中, 确保它以 .jnl 结尾.

查看关于 ${INPUT%.jnl} 的一些测试表达式:

$ var="hello.jnl.jnlbye"
$ echo ${var%.jnl}
hello.jnl.jnlbye    # as .jnl is not present in the back, nothing gets removed

$ var="hello.jnl.jnl"
$ echo ${var%.jnl}
hello.jnl           # it removed the last .jnl

关于linux - Unix 通配符扩展/正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342826/

相关文章:

sql - 遍历关系表

java - spark standalone cluster slave无法将slave连接到master

linux - 创建一个 shell,使用 curl 在 dropfile.to 上下载文件

unix - 将 ImageMagick 输出从科学转换为十进制?

linux - JBoss:32 位与 64 位性能差异?

Linux向日志文件添加监听器

bash - SQL*Loader-522 : lfiopn failed for file

arrays - 将逗号分隔的字符串拆分为 shell 脚本中的数组值?

python - Shell:提示用户输入目录路径

shell - Unix find 命令的默认顺序是什么?