bash - 在bash中,如何批量显示文件中某行的文本?

标签 bash sed xargs

我想批量显示某个目录下某行文件的文本,通常可以用下面的命令来实现:

    for file in `find ./ -name "results.txt"`; 
    do
        sed -n '12p' < ${file}; 
    done

在每个文件名“results.txt”的第12行,有我要输出的文本。

但是,我想知道是否可以使用管道命令来执行此操作。我尝试了以下命令:

    find ./ -name "results.txt" | xargs sed -n '12p'

    find ./ -name "results.txt" | xargs sed -n '12p' < {} \;

但两者都不能正常工作。 你能给一些建议或推荐一些引用资料吗? 欢迎大家多多指教!

最佳答案

应该这样做

find ./ -name results.txt -exec sed '12!d' {} ';'

关于bash - 在bash中,如何批量显示文件中某行的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196664/

相关文章:

java - Kotlin 对 VS Code 中的所有内容都会抛出错误

macos - 从 OS X 上的文件中删除内联空字节

unix -/bin/sed '/^$/d' |/bin/sed -e 's/^[\t]*//' 是什么意思?

php - 双引号在 PHP 的 shell_exec 和 sed 中不断被解析

regex - bash shell 删除大写文件名,即使模式是小写

bash - 我如何找出我的终端需要发送的转义序列?

linux - 从 db 中获取记录并将其分配给一个数组以用于 Linux bash 脚本中的邮件报告

shell - 如何在 BSD 查找中使用 xargs?

linux - 如何在linux中删除许多0字节的文件?

bash - 将从 xargs 传递到 bash 的参数保存为变量以进行处理