【问题标题】:Getting files names with bash script使用 bash 脚本获取文件名
【发布时间】:2014-12-19 18:45:13
【问题描述】:

我正在尝试从目录“blabla”获取所有文件名

并且仅来自该目录,没有其子目录

我需要所有没有 X 名字和 Y 姓氏的名字

没有它的路径(只有文件名自己

我试过了

#!/bin/bash
find blavla | sort

但它给了我所有的文件,包括子文件夹文件

它给了我全名(带路径)

而且我不知道如何在没有 X 名字和 Y 姓氏的情况下使用芦苇

试图在网上搜索并阅读 man find 但什么也没找到

【问题讨论】:

  • 使用全局:files=( * )。或者打印它们:printf '%s\n' *.
  • 你能解释一下吗?
  • 您的意思是要使用 find 作为 ls blabla 吗?
  • XY Problem 警告!你想达到什么目标?

标签: linux bash shell unix find


【解决方案1】:

使用以下命令:

find . -maxdepth 1 -type f -exec basename {} ';' | \
sort | \
awk 'BEGIN { X = 2; Y = 2 } { lines[NR] = $0 } END { for (i=1 + X; i<=NR - Y; i++) print lines[i] }'

将 X 和 Y 分别设置为要在列表开头和结尾跳过多少个文件名。

【讨论】:

  • 很好,但我仍然得到文件的完整路径以及我如何继续读取第一个 X 和最后一个 Y 文件?
  • @JohnnyF:我已将命令更新为仅打印不带路径的基本名称。您想要按字母顺序排列第一个 X 和最后一个 Y 文件吗?
【解决方案2】:

试试这个(用实际值代替 Y 和 X):

cd blavla && find . -maxdepth 1 -type f|head -n -Y|tail -n +(X+1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2021-04-03
    相关资源
    最近更新 更多