【问题标题】:find, sort and extract a line from text files with bash使用 bash 从文本文件中查找、排序和提取一行
【发布时间】:2011-12-18 05:51:38
【问题描述】:

我正在尝试制作对我来说有点太难的 bash 脚本。 我需要在目录中搜索以“FA”结尾的特定文本文件,按字母顺序对结果进行排序,然后将每个文件的第 13 行粘贴到一个新的文本文件中。

我四处阅读,这就是我目前所管理的。 此命令将对结果进行搜索和排序:

find . -iname "*FA" -exec ls {} \; | sort

而且效果很好。

此命令将搜索并获取每个文件的第 13 行并将其粘贴到名为“FACC.txt”的新文件中:

find . -iname "*FA" -exec sed -n 13p >FACC.txt {} \;

它也可以正常工作。

现在我需要将两者结合起来,即对结果进行排序并取每个结果的第 13 行!

谢谢!任何帮助表示赞赏!

【问题讨论】:

    标签: bash sorting sed find ls


    【解决方案1】:

    像这样?

    find . -iname "*FA" -exec ls {} \; | sort | xargs -n 1 sed -n 13p
    

    【讨论】:

    • 我不知道发生了什么,但上面的代码不是第 13 行,而是给我每个以 '*FA' 结尾的文件的第 11 行
    • 最后加上>FACC.txt,现在完美运行!!!谢谢!!!
    • -exec ls {} \; 部分是不需要的——find 默认打印匹配文件的路径。
    • 我保留了它,假设我们想要 *FA 目录的内容。虽然我也只会使用find
    猜你喜欢
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2020-08-04
    • 2018-01-08
    相关资源
    最近更新 更多