File 灰显列,然后粘贴到另一个文件
嘿,伙计们,我有个grep问题。我想grep文件中包含特定数字的行,然后我想将该行中的特定列粘贴到文件中 例如,如果我有号码1068File 灰显列,然后粘贴到另一个文件,file,grep,multiple-columns,File,Grep,Multiple Columns,嘿,伙计们,我有个grep问题。我想grep文件中包含特定数字的行,然后我想将该行中的特定列粘贴到文件中 例如,如果我有号码1068 File A has 1094 A B C 1068 D E F 1044 G H I File B has 1092 L M N 1068 X Y Z 1045 Q R S File C has 1093 A B C 1062 D E F 1041 G H I 我
File A has
1094 A B C
1068 D E F
1044 G H I
File B has
1092 L M N
1068 X Y Z
1045 Q R S
File C has
1093 A B C
1062 D E F
1041 G H I
我想grep所有文件中有1068行的行,只粘贴某些列,并将它们并排粘贴。请注意,文件C没有1068,但我想粘贴NA。因此,最终输出如下所示:
1068文件A C文件B X Z文件C NA NA
任何帮助都将不胜感激!我现在不知道如何grep列,甚至不知道它是否存在。例如,在文件C中,grep将一无所获,但我想用NA代替。我该怎么做呢?我认为这不是格雷普的工作。更像是一份糟糕的工作
非常感谢你!这正是我需要的。我正在写剧本,只是因为问题比我想象的要复杂一点,但非常感谢@用户3799576如果答案解决了您的问题,请不要忘记接受答案
awk -v num=1068 '
BEGIN { printf "%d", num }
# If file has changed and num has not been found...
FNR==1 && NR!=1 && !found_num { printf " %s NA NA", FILENAME }
# If at the beginning of a file (needs to be after previous line).
FNR==1 { found_num = 0 }
# If we find num, print the data and set found_num flag.
$1 == num { printf " %s %s %s", FILENAME, $2, $4; found_num = 1 }
END { if (!found_num) printf " %s NA NA", FILENAME; print"" }
' FileA FileB FileC