awk 和多个文件处理可能吗?
我需要处理两个文件内容。我想知道我们是否可以使用单个 nawk 语句来完成它。
文件 A 内容:
AAAAAAAAAAAA 1
BBBBBBBBBBBB 2
CCCCCCCCCCCC 3
文件 B 内容:
XXXXXXXXXXX 3
YYYYYYYYYYY 2
ZZZZZZZZZZZ 1
我想比较文件 A 中的 $2
(第二个字段)是否与文件 B 中的 $2
相反。 我想知道如何在 nawk 中编写多文件处理规则? 我们如何区分 A 的 $2
和 B 的 $2
编辑:我需要将 A 第一行的 $2 (即 1)与 B 最后一行的 $2 (即 1)进行比较再次)。然后将 A 中第 2 行的 $2 与 B 的 NR-1 行中的 $2 进行比较。依此类推......
I need to process two file contents. I was wondering if we can pull it off using a single nawk statement.
File A contents:
AAAAAAAAAAAA 1
BBBBBBBBBBBB 2
CCCCCCCCCCCC 3
File B contents:
XXXXXXXXXXX 3
YYYYYYYYYYY 2
ZZZZZZZZZZZ 1
I would like to compare if $2
(2nd field ) in file A is the reverse of $2
in file B.
I was wondering how to write rules in nawk for multi-file processing ?
How would we distinguish A's $2
from B's $2
EDIT: I need to compare $2 of A's first line (which is 1) with the $2 of B's last line (which is 1 again) .Then compare $2 of line 2 in A with $2 in NR-1 th line of B. And so on.....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以这样做 -
解决方案:
You can do something like this -
Solution:
您可以使 awk 串行处理文件,但不能轻松地使其并行处理两个文件。您可能可以通过仔细使用
getline
来实现此效果,但“小心”是最重要的术语。我认为在这种情况下,对于简单的两列文件,我倾向于使用:
您需要确保两个文件的顺序正确,等等。
如果您的输入更复杂,那么这可能不起作用很好,尽管您可以使用
paste -d'|' 选择分隔两个文件中的数据的字符...
使用管道分隔两条记录,以及awk -F'|' '{ ... }'
将$1
读取为文件 A 中的信息,将$2
读取为文件 B 中的信息。You can make
awk
process files serially, but you can't easily make it process two files in parallel. You probably can achieve the effect with careful use ofgetline
but 'careful' is the operative term.I think in this case, with simple two-column files, I'd be inclined to use:
You would need to make sure the two files are in the appropriate order, etc.
If your input is more complex, then this may not work so well, though you can choose the character that separates the data from the two files with
paste -d'|' ...
to use a pipe to separate the two records, andawk -F'|' '{ ... }'
to read$1
as the info from File A and$2
as the info from File B.您是否考虑过做以下这样的事情?
tac
反转文件 B 的行,然后可以比较两列。Have you thought about doing something like the following?
tac
reverses the lines of file B and then you can compare the two columns.