如何将命令结果通过管道传输到 -<字符><参数>选项? (没有空格)

发布于 2024-07-21 05:42:15 字数 386 浏览 8 评论 0原文

我有这组管道命令:

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

它告诉我第一个找到星号的前一行。 现在我想将前面的行通过管道传输到:

head -n<that previous line number>

Head 需要紧跟在 -n 参数后面的数字,不带空格,例如:

head -n4

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

| head -n

在命令集末尾添加。 我的搜寻毫无结果。 谢谢!

I have this set of piped commands:

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

It tells me the previous line to that where it first find asterisks.
Now I want to get the previous lines piping that to:

head -n<that previous line number>

Head requires a number following immediately the -n argument, without spaces, for example:

head -n4

How can I do that? It just won't accept adding

| head -n

at the end of the set of commands.
My searches have been fruitless. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

隔岸观火 2024-07-28 05:42:15

您想要反引号来替换值:

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

You want back-ticks to substitute the value:

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

Or possibly something similar on multiple lines:

LINENO=`grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'`
head -n${LINENO} file.txt
能怎样 2024-07-28 05:42:15

你为什么不直接这样做:

awk -- '{if (!/*/) print $0; else exit}' file.txt

或者这样,这样更快:

awk -- '/*/ {exit}; {print}' file.txt

Why don't you just do:

awk -- '{if (!/*/) print $0; else exit}' file.txt

or this, which is faster:

awk -- '/*/ {exit}; {print}' file.txt
因为看清所以看轻 2024-07-28 05:42:15

我想你也可以使用 xargs。 就像是:

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

I think you could also use xargs. Something like:

grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}' | xargs -I % head -n% file.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文