You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从每行含2字符的文件生成ls -t带通配符的参数列表?

实现方法

我整理了几个实用的方案,能帮你把文件里的前缀转换成ls -t的参数:

方法1:用xargs快速实现(适合无特殊字符的场景)

如果你的文件名里没有空格、引号这类特殊字符,直接用xargs就能搞定:

xargs -I{} ls -t {}* < your_file.txt

这里的-I{}会把文件里的每一行内容替换成{},再加上通配符*,最终就会生成ls -t RU* 8A* 1C*这样的命令。

方法2:用Shell数组+循环(最安全,支持特殊字符)

如果需要处理带空格或特殊字符的文件名,用Shell数组来收集参数是最稳妥的方式:

# 初始化空数组
args=()
# 逐行读取文件内容,把前缀+*加入数组
while read -r prefix; do
    args+=("${prefix}"*)
done < your_file.txt
# 执行ls命令,传递所有参数
ls -t "${args[@]}"

这个方法会先把所有前缀*的参数收集到数组里,再一次性传给ls -t,避免了特殊字符导致的分词错误。

方法3:awk配合xargs(灵活处理输出格式)

用awk给每行内容加上*,再通过xargs传给ls -t:

awk '{print $0"*"}' your_file.txt | xargs ls -t

如果要兼容带空格的文件名,可以改成NULL分隔符的版本:

awk '{printf "%s*\0", $0}' your_file.txt | xargs -0 ls -t

printf "%s*\0"会给每个前缀+*加上NULL结尾,xargs -0会识别这个分隔符,确保特殊字符不会被错误拆分。


内容的提问来源于stack exchange,提问作者Sentes Snus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:43:37