我有一个已经存在的脚本来检查2个文件之间的独占数据,并将其加载到第3个文件中。命令如下。
var='FNR == NR {keys[$1 $2]; next} !($1 $2 in keys)'
awk -F\| $var file1.dat file2.dat > file3.dat
要求是重复使用相同的命令,但只是将数据从file 2附加到file 3,忽略file 1。我尝试执行以下操作,但它同时从file 1和file 2假脱机数据。我所需要的是,尽管awk命令中提供了两个文件名,但只需要附加第二个文件数据。
var='{print $0}'
awk -F\| $var file1.dat file2.dat > file3.dat
任何人都可以帮助准确的命令。下面是每个文件中的数据和预期的输出。
File 1(可以有0个或更多)-我们根本不应查看此文件
123
456
789
档案2:
123
ABC
XYZ
456
File 3中的预期输出(全部来自file 2,仅忽略file 1输入,但我必须在awk命令中具有file 1名称)
123
ABC
XYZ
456
3条答案
按热度按时间khbbv19g1#
所有这些都来自
file2
,只需忽略file1
输入,但我必须在awk命令中使用file1名称。如果您必须在awk命令的参数中使用
file1
和file2
,并且只想从file2
输出内容,则可以用途:delete ARGV[1]
将删除参数列表中第一个参数b4lqfgs42#
使用您展示的示例和尝试,请尝试以下
awk
代码。在GNUawk
中编写和测试。只需使用nextfile
跳过名为file1的第一个Input_file,并读取前面的第二个文件。ztmd8pv53#
我还要记住不要浪费时间拆分不需要的字段
如果不一次阅读一行,速度会快很多:
第一个
并尽量避免使用
gawk
的慢速默认模式:一个