gpt4 book ai didi

bash - 选择文件夹中的第 n 个文件(使用 sed)?

转载 作者:行者123 更新时间:2023-11-29 09:04:39 25 4
gpt4 key购买 nike

我正在尝试选择文件名与特定模式匹配的文件夹中的第 n 个文件:

我试过将它与 sed 一起使用:例如, sed -n 3p/path/to/files/模式.txt

但它似乎返回第一个匹配文件的第 3 行。

我也试过 sed -n 3p ls/path/to/files/*pattern*.txt这也不起作用。

谢谢!

最佳答案

为什么选择 sed,而 bash 更擅长它?

假设一些名字n表示你想要的索引:

bash

files=(path/to/files/*pattern*.txt)
echo "${files[n]}"

Posix

i=0
for file in path/to/files/*pattern*.txt; do
if [ $i = $n ]; then
break
fi
i=$((i++))
done
echo "$file"

sed 的问题在于,您必须跳过许多环节才能确保文件名中可能出现的所有可能字符的安全,即使这无关紧要对你来说,你最终会得到双层子壳来得到答案。

file=$(printf '%s\n' path/to/files/*pattern*.txt | sed -n "$n"p)

拜托,never parse ls .

关于bash - 选择文件夹中的第 n 个文件(使用 sed)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com