Linux 我有两个文件。我想列出一个文本文件中不在另一个文本文件中的内容
比如说, 名为ppcc.txt的文本文件的内容包括:Linux 我有两个文件。我想列出一个文本文件中不在另一个文本文件中的内容,linux,Linux,比如说, 名为ppcc.txt的文本文件的内容包括: SUBSCRIBERIDENTIFIER|234818624|2000018 SUBSCRIBERIDENTIFIER|234817904|5098596 SUBSCRIBERIDENTIFIER|234908279|5093267 SUBSCRIBERIDENTIFIER|234908023|VOIPBurn SUBSCRIBERIDENTIFIER|234909392|VOIPBurn 另一个名为pcs.txt的文件的内容为: 2348
SUBSCRIBERIDENTIFIER|234818624|2000018
SUBSCRIBERIDENTIFIER|234817904|5098596
SUBSCRIBERIDENTIFIER|234908279|5093267
SUBSCRIBERIDENTIFIER|234908023|VOIPBurn
SUBSCRIBERIDENTIFIER|234909392|VOIPBurn
另一个名为pcs.txt的文件的内容为:
234818947|1754261815|20370101000000
234809110|358155618|20370101000000
234809417|1385298890|20361231230000
234908023|1381142974|20171124205011
234909392|358155618|20370101000000
我正在按234号搜索,我希望我的输出以Result.txt的形式保存在另一个文本文件中,内容如下:
SUBSCRIBERIDENTIFIER|234818624|2000018
SUBSCRIBERIDENTIFIER|234817904|5098596
SUBSCRIBERIDENTIFIER|234908279|5093267
使用awk
:
awk 'BEGIN{FS=OFS="|"}FNR==NR{a[$1]=1;next} !($2 in a)' pcs.txt ppcc.txt
我们正在读取两个文件,首先是pcs.txt
,然后是ppcc.txt
。节目说明:
# Set input and output field delimiter to |
BEGIN{FS=OFS="|"}
# As long as FNR (record number in current input file) and
# NR (overall record number) are equals we are reading the
# first file - pcs.txt
FNR==NR{
# Store the value of the first column in as a key in
# an array "a"
a[$1]=1
# Don't process any further blocks. Continue with the
# next line of input
next
}
# This expression is only executed on lines of ppcc.txt
# If the array "a" doesn't not contain the second column
# as a key, print it.
!($2 in a)
哪种编程语言?您在标记中包含了
linux
-是否希望有人在命令行中告诉您如何执行此操作?我建议格式化您的代码。非常感谢hek2mgl。如果我从另一个角度看这个命令(删除命令中的“!”),希望打印两个文件pcs.txt和ppcc.txt的公共数据值,那么您的答案非常有用,希望这个命令合适:awk'BEGIN{FS=OFS=“|”}FNR==NR{a[$1]=1;next}($a中的2)'pcs.txt ppcc.txt