首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何一个接一个地获取带有模式的文件名

如何一个接一个地获取带有模式的文件名
EN

Stack Overflow用户
提问于 2014-02-22 02:21:17
回答 3查看 109关注 0票数 0

如何使用f-1,f-5,f-4,f-3,f-2脚本在循环中一个接一个地获取带有模式外壳的文件名。我需要按no's 1,2,3,4,5的顺序检索文件名

代码语言:javascript
运行
复制
#!/bin/bash
ls f-* | sort | while read m
do
cat $m
done
EN

回答 3

Stack Overflow用户

发布于 2014-02-22 03:17:54

代码语言:javascript
运行
复制
for i in 1 2 3 4 5
do
  cat f-$i
done

代码语言:javascript
运行
复制
ls f-* | sort | while read f
do
  cat $f
done
票数 0
EN

Stack Overflow用户

发布于 2014-02-22 17:13:09

如果只是文件名,在你有很多选择之后,下面几个选项:

代码语言:javascript
运行
复制
for f in f-*; do echo "$f"; done

ls f-* | while read f; do echo "$f"; done

#Total overkill for this example
find . -name "f-*" | while read f; do
  echo "$f"
done
票数 0
EN

Stack Overflow用户

发布于 2014-02-22 21:50:38

这有帮助吗?

代码语言:javascript
运行
复制
#!/bin/bash

echo ls: $(ls)
echo ""

seqmax=0
for file in $(ls ./f-* ); do
    char=$( echo $file | wc -c )
    if [ $char > $seqmax ];then
        seqmax=$char
    fi
done
i=0
for count in $(seq 1 1 $seqmax);do
    for file in $(ls | egrep "^f\-[0-9]{$count}$");do
        completearray[$i]=$file
        i=$(expr $i + 1 )
    done
done

echo ${completearray[@]}

输出结果如下所示。

代码语言:javascript
运行
复制
$ ./script.sh
ls: f-1 f-15 f-16 f-2 f-3 f-one f-two g-1 g-2 g-3 script.sh

f-1 f-2 f-3 f-15 f-16
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21942240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档