xargs 字符串用作 agrep 的输入

     2023-03-06     67

关键词:

【中文标题】xargs 字符串用作 agrep 的输入【英文标题】:xargs string used as an input for agrep 【发布时间】:2012-06-21 01:21:22 【问题描述】:

伙计们,我正在使用 xargs 将输入传递给 agrep。我正在使用如下所示的 xargs

Script:    
xargs -L 1 -I string echo "RequestId="string | xargs -L 1 -I string zcat FILEB | agrep -dEOE string


Output till "RequestId="string
RequestID=543214324
RequestID=512121221
RequestID=521212121

我的目标是在另一个文件“文件 B”中确认此请求 ID。由于这个文件是压缩的,我需要在执行 agrep 之前使用 zcat ......但是如果我这样做,我会得到不正确的结果.. 我在 agrep 中使用的最终“字符串”不正确.. 任何关于此的建议都将是高度有帮助。

【问题讨论】:

【参考方案1】:

你想要什么并不完全清楚。我假设你有一个文件 FILEA 包含:

543214324
512121221
521212121

并且您想将 FILEB.gz 用于:

RequestID=543214324
RequestID=512121221
RequestID=521212121

FILEBB.gz 是 gzip 压缩的,所以你需要 zcat 来解压它,并且你不能使用 zgrep,因为你依赖于仅在 agrep 中找到的功能。

使用 GNU Parallel 你可以做到:

cat FILEA | parallel zcat FILEB.gz \| agrep -dEOE RequestID=

并行执行的一个优点是,如果 FILEB.gz 太大而无法放入内存,那么这将确保并行搜索,从而避免每次搜索都从磁盘读取 FILEB.gz。另一个优点是您可以使用多个 CPU 内核,这些天您的计算机几乎可以保证拥有这些内核。

您可以通过以下方式安装 GNU Parallel:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

观看 GNU Parallel 的介绍视频以了解更多信息:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

【讨论】:

如何引用 xargs 中保存的对象/字符串的基本名称

】如何引用xargs中保存的对象/字符串的基本名称【英文标题】:HowcanIrefertothebasenameoftheobject/stringbeingheldinxargs如何引用xargs中保存的对象/字符串的基本名称【发布时间】:2021-11-2819:40:33【问题描述】:我正在使用xargs来更改文件... 查看详情

linux命令之将标准输入转为命令行参数xargs(代码片段)

...#xff1b;禁用引号和反斜杠处理和逻辑EOF处理-EEND设置逻辑EOF字符串;如果END作为一行出现输入,其余输入被忽略(如果指定了-0或-d则忽略)-e,--eof[=END]如果指定了END,则等效于-EEND;否则,没有文件结... 查看详情

xargs

xargs紧跟在管道操作符之后,它使用标准输入作为主要的数据源例如:ls*.c|xargsgrepmainxargs默认会执行echo命令1.将多行输入转换成单行输出catexample.txt|xargs2.将单行输入转换成多行输出catexample.txt|xargs-n3xargs工作原理:xargs命令接受来... 查看详情

xargs命令教程(代码片段)

...不了解它的用法。本文介绍如何使用这个命令。一、标准输入与管道命令Unix命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数。$cat/etc/passwd|greproot上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令... 查看详情

xargs命令

...个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多... 查看详情

xargs命令

...个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多... 查看详情

xargs(代码片段)

xargs可以将不可以接标准输入的命令,连接标准输入进行操作|管道符后不可以接lsmkdir touch等命令,因为这些命令不能接标准输入而echocat可以直接连接标准输入xargs的作用就是将ls这样的命令变成和echo一样,可以接标准输入|ec... 查看详情

xargs命令用法

...个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多... 查看详情

xargs将标准输入转换成命令行参数

1.命令功能xargs命令过滤器,接收管道或者标准输入传递的数据转换成xargs命令。2.语法格式xargs[option]xargs 选项参数参数说明-n指定每行的最大参数量n,-d自定义分隔符-i已替代前面的结果-I指定一个符号替代前面的结果,而不用... 查看详情

xargs---组合命令的工具(代码片段)

...个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多... 查看详情

具有多个参数的 xargs

...【发布时间】:2011-04-1518:53:31【问题描述】:我有一个源输入,input.txta.txtb.txtc.txt我想将这些输入输入到程序中,如下所示:my-program--file=a.txt--file=b.txt--file=c.txt所以我尝试使用xargs,但没有成功。catinput.txt|xargs-iecho"m 查看详情

linux下xargs和管道的区别

管道将前面的标准输出作为后面的标准输入,xargs则将标准输入作为命令的参数你可以试试运行如下代码:echo"--help"|catecho"--help"|xargscat结果如下:如果你直接在命令行输入cat后回车,而不输入命令参数,这时cat会等待标准输入,... 查看详情

xargs 找不到输入文件提供的文件路径

】xargs找不到输入文件提供的文件路径【英文标题】:xargscannotfindfilepathssuppliedbyinputfile【发布时间】:2013-08-1012:22:12【问题描述】:首先,我不肯定它属于这里而不是ServerFault或其他地方。如果它属于那里,我很抱歉。无论如何... 查看详情

让 xargs 对每一行输入执行一次命令

】让xargs对每一行输入执行一次命令【英文标题】:Makexargsexecutethecommandonceforeachlineofinput【发布时间】:2010-09-1623:44:24【问题描述】:如何让xargs对给定的每一行输入只执行一次命令?它的默认行为是将行分块并执行一次命令,... 查看详情

字符串的整数编码并将其用作决策树(sklearn)的输入是不是会使分割属性离散或连续?

】字符串的整数编码并将其用作决策树(sklearn)的输入是不是会使分割属性离散或连续?【英文标题】:Doesintegerencodingofstringsandusingthisasaninputtodecisiontree(sklearn)makesthesplittingattributesdiscreteorcontinuous?字符串的整数编码并将其用作... 查看详情

修改 xargs 中的替换字符串

】修改xargs中的替换字符串【英文标题】:Modifyingreplacestringinxargs【发布时间】:2012-06-0322:06:57【问题描述】:当我使用xargs时,有时我不需要显式使用替换字符串:find.-name"*.txt"|xargsrm-rf在其他情况下,我想指定替换字符串以执... 查看详情

agrep:只返回最佳匹配

】agrep:只返回最佳匹配【英文标题】:agrep:onlyreturnbestmatch(es)【发布时间】:2011-08-0823:26:51【问题描述】:我在R中使用\'agrep\'函数,它返回一个匹配向量。我想要一个类似于agrep的函数,它只返回最佳匹配,或者如果有平局则... 查看详情

linuxxargs命令

...是组合多个命令的一个工具。  xargs可以将管道或标准输入(stdin)数据转换成命令行参数,   也能够从文件的输出中读取数据。  xargs也可以将单行或多行文本输入转换为其他格式,   例如多行变单行,单行变多行。... 查看详情