我试图在文件名匹配某个模式的文件夹中选择第n个文件:
香港专业教育学院尝试使用sed:例如,sed -n 3p/path/to/files/pattern .txt
但它似乎返回第一个匹配文件的第3行.
我也尝试过sed -n 3p ls /path/to/files/*pattern*.txt
,它也不起作用.
谢谢!
为什么sed,当bash在这方面做得好多了?
假设某个名称n
表示您想要的索引:
files=(path/to/files/*pattern*.txt)
echo "${files[n]}"
Run Code Online (Sandbox Code Playgroud)
i=0
for file in path/to/files/*pattern*.txt; do
if [ $i = $n ]; then
break
fi
i=$((i++))
done
echo "$file"
Run Code Online (Sandbox Code Playgroud)
有什么不对的sed
是你必须跳过许多箍才能使文件名中可能出现的整个可能字符集安全,即使这对你来说无关紧要,你最终会得到一个双层的亚壳来得到答案.
file=$(printf '%s\n' path/to/files/*pattern*.txt | sed -n "$n"p)
Run Code Online (Sandbox Code Playgroud)
请永远解析ls
.
归档时间: |
|
查看次数: |
2713 次 |
最近记录: |