【发布时间】:2023-03-18 07:01:01
【问题描述】:
在 bash shell 脚本中,我需要使用文件 1 中的字符串创建一个文件,这些字符串在文件 2 的行中找不到。文件 1 通过目录中文件的 for 循环打开。
files=./Output/*
for f in $files
do
done
我有非常大的文件,所以使用 grep 并不理想。我之前试过:
awk 'NR==FNR{A[$2]=$0;next}!($2 in A){print }' file2 file1 > file3
文件 1:
NB551674:136:HHVMJAFX2:1:11101:18246:1165
NB551674:136:HHVMJAFX2:1:11101:10296:1192
NB551674:136:HHVMJAFX2:1:11101:13281:1192
NB551674:136:HHVMJAFX2:2:21204:11743:6409
文件 2:
aggggcgttccgcagtcgacaagggctgaaaaa|AbaeA1 NB551674:136:HHVMJAFX2:2:21204:11743:6409 100.000 32 0 0 1 32 83 114 7.30e-10 60.2
taccaacaattcagcgttacgccaacggtaac|AbaeB1 NB551674:136:HHVMJAFX2:4:21611:6341:1845 100.000 32 0 0 1 32 27 58 6.70e-10 60.2
taccaacaattcagcgttacgccaacggtaac|AbaeB1 NB551674:136:HHVMJAFX2:4:11504:1547:13124 100.000 32 0 0 1 32 88 119 6.70e-10 60.2
taccaacaattcagcgttacgccaacggtaac|AbaeB1 NB551674:136:HHVMJAFX2:3:11410:11337:15451 100.000 32 0 0 1 32 27 58 6.70e-10 60.2
预期输出:
NB551674:136:HHVMJAFX2:2:21204:11743:6409
【问题讨论】:
-
我们鼓励提问者展示他们迄今为止为自己解决问题所做的尝试。
-
如果 file1 中的某些行与 file2 中的某些行匹配并且您显示了预期的输出,那么您的示例会更有用。