bash - 如何将命令结果通过管道传递给 -<character><argument> 选项? (没有空格)

标签 bash command pipe head

我有这组管道命令:

grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'

它告诉我它首先找到星号的那一行的前一行。 现在我想将之前的几行管道传输到:

head -n<that previous line number>

Head 需要一个数字紧跟在 -n 参数之后,没有空格,例如:

head -n4

我该怎么做?它只是不接受添加

| head -n

在命令集的末尾。 我的搜索没有结果。谢谢!

最佳答案

您希望用反引号替换值:

head -n`grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'` file.txt

或者可能在多行上有类似的东西:

LINENO=`grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'`
head -n${LINENO} file.txt

关于bash - 如何将命令结果通过管道传递给 -<character><argument> 选项? (没有空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/899596/

相关文章:

node.js - 使用 --experimental-specifier-resolution=node 时如何让 yargs 自动完成工作

android - 如何从android上的shell命令获取唤醒锁

c++ - 嵌入式 Tcl : Does Tcl autocomplete commands?

c - 在 C 中使用 fork()、pipe()、dup2() 和 exec() 时遇到问题

angular - 在变换管道中使用链式可观察量

linux - 为什么我的 root 用户与使用相同 shell 的其他用户有不同的 shell 提示?

linux - 错误 Shell 脚本

bash: ./create.sh: 尝试构建堆栈时权限被拒绝

linux - Unix - 只列出包含子目录的目录

node.js - 在 Node.js 中,请求回调是一种不好的做法吗?