awk用于存储和重置文件中的变量

awk用于存储和重置文件中的变量,awk,Awk,尝试使用awk在file1中查找file2的同一行中的字符串(始终仅为1个字段)。也就是说,如果在file1中使用第1行,则在file2中仅使用第1行。由于该值可能丢失,因此进行检查以确保该值存在。这只是一个想法,所以可能有更好的方法,但我只是想看看。谢谢:) file1 R_2017_01_13_12_11_56_user_S5-00580-24-Medexome R_2017_01_13_14_46_04_user_S5-00580-25-Medexome 文件2 The oldest f

尝试使用
awk
file1
中查找
file2
的同一行中的字符串(始终仅为1个字段)。也就是说,如果在
file1
中使用第1行,则在
file2
中仅使用第1行。由于该值可能丢失,因此进行检查以确保该值存在。这只是一个想法,所以可能有更好的方法,但我只是想看看。谢谢:)

file1

R_2017_01_13_12_11_56_user_S5-00580-24-Medexome
R_2017_01_13_14_46_04_user_S5-00580-25-Medexome
文件2

The oldest folder is R_2017_01_13_12_11_56_user_S5-00580-24-Medexome, created on 2017-01-17+11:31:02.5035483130 and analysis done using v1.4 by cmccabe at 01/17/17 12:41:03 PM
$filename所需的输出

R_2017_01_13_12_11_56_user_S5-00580-24-Medexome
在使用
$filename
运行一系列进程之后,我需要用一个新变量重置该变量

文件1(重新运行某些进程后)

文件2(重新运行某些进程后)

$filename
的所需输出现在是(因为这是新值)

awk

filename=$(awk 'NR==1{print $1}' file1 file2)

如果您只需要连续检查
file2
的最后一行,您可以:

$ awk 'NR==FNR{a[$1];next}{for(i in a)if(i ~ $0) print i}' file1 <(tail -f file2)

$awk'NR==FNR{a[$1];next}{for(a中的i)if(i~$0)print i}'file1如果您只需要连续检查
file2
的最后一行,您可以:

$ awk 'NR==FNR{a[$1];next}{for(i in a)if(i ~ $0) print i}' file1 <(tail -f file2)

$awk'NR==FNR{a[$1];next}{for(a中的i)if(i~$0)print i}'file1您想检查file2的最后一行是否包含file1中给定的字符串

$ awk 'ENDFILE {line=$0} FNR<NR && line ~ $1' file2 file1
R_2017_01_13_14_46_04_user_S5-00580-25-Medexome
为此,您只需阅读最后一行,然后查看它是否与file1中的任何单词匹配

$ awk 'ENDFILE {line=$0} FNR<NR && line ~ $1' file2 file1
R_2017_01_13_14_46_04_user_S5-00580-25-Medexome

$awk'ENDFILE{line=$0}FNR您想检查file2的最后一行是否包含file1中给定的字符串

$ awk 'ENDFILE {line=$0} FNR<NR && line ~ $1' file2 file1
R_2017_01_13_14_46_04_user_S5-00580-25-Medexome
为此,您只需阅读最后一行,然后查看它是否与file1中的任何单词匹配

$ awk 'ENDFILE {line=$0} FNR<NR && line ~ $1' file2 file1
R_2017_01_13_14_46_04_user_S5-00580-25-Medexome

$awk'ENDFILE{line=$0}fnr是否要打印file1中与file2中出现在同一行的最后一项?我认为是另一种方式,因为
file1
可以包含多个值,但是
file2
只有一个值,直到它被新进程更新。谢谢:)。所以您总是需要只检查文件2中的最后一行吗?是的,这是正确的:)。所以您想打印文件1中与文件2中出现在同一行的最后一项吗?我认为是另一种方式,因为
file1
可以有多个值,但是
file2
只有一个值,直到它被新进程更新。谢谢:)。所以您总是需要只检查文件2中的最后一行?是的,这是正确的:)。很好[这是一个填充符]。如何将此值存储在
$filename
变量中,或者如果创建了存储此行的文件,则后续脚本可以使用它?谢谢:)。@Chris当然,只要说
filename=$(awk'ENDFILE{line=$0}fn非常感谢:).NIce[这是一个填充词]。这个值如何存储在
$filename
变量中,或者如果创建了一个存储此行的文件,那么后续脚本可以使用它?谢谢:)。@Chris当然,只要说
filename=$(awk'ENDFILE{line=$0}fn非常感谢你们两位:)。