gpt4 book ai didi

bash - 如何将文本粘贴到像 awk 这样的逐行文本过滤器,而不让标准输入回显到屏幕?

转载 作者:行者123 更新时间:2023-11-29 09:41:49 24 4
gpt4 key购买 nike

我在 Windows 盒子上的电子邮件中有一段文本,看起来像这样:

100 some random text
101 some more random text
102 lots of random text, all different
103 lots of random text, all the same

我想提取数字,即每行的第一个单词。我在 Linux 机器上打开了一个运行 bash 的终端...

如果这些在文本文件中,我会这样做:

awk '{print $1}' mytextfile.txt

我想将这些粘贴进去,并取出我的数字,而不创建临时文件。

我天真的第一次尝试是这样的:

$ awk '{print $1}'
100 some random text
100
101 some more random text
101
102 lots of random text, all different
103 lots of random text, all the same

102
103

标准输入和标准输出的缓冲对此进行了哈希处理。我不介意首先打印所有标准输入,然后打印所有标准输出;例如,如果我粘贴到“sort”中,就会发生这种情况,但 awk 和 sed 则不同。

更多的思考给了我这个:打开两个终端。创建一个 fifo 文件。在一个终端上从 fifo 读取,在另一个终端上写入。

这确实有效,但我很懒。我不想打开第二个终端。 shell 中是否有一种方法可以隐藏当我将其传递到管道时回显到屏幕的文本,以便我粘贴此内容:

100 some random text
101 some more random text
102 lots of random text, all different
103 lots of random text, all the same

但看到这个了吗?

$ awk '{print $1}'
100
101
102
103

最佳答案

您可以使用 here document 。我尝试了以下方法并且有效:

$ awk '{print $1}' << END
> 100 some random text
> 101 some more random text
> 102 lots of random text, all different
> 103 lots of random text, all the same
> END
100
101
102
103

我会尝试解释我输入的内容:

awk '{print $1}' << END (RETURN)
(PASTE) (RETURN)
END (RETURN)

如果这是有道理的。

粘贴的文本仍然显示在标准输出上,但是您关心的结果都会在之后出现,因此您可以轻松地抓取它。确保选择文本中没有的内容来替换我的示例中的 END!

关于bash - 如何将文本粘贴到像 awk 这样的逐行文本过滤器,而不让标准输入回显到屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com