【发布时间】:2021-01-11 22:15:31
【问题描述】:
我有一个文本文件,它是两个 grepped 文件的输出差异。文本文件有如下行 我需要读取文件(循环遍历文本文件中的行)并根据“”右侧的文本做一些事情.
编辑添加细节:
- 的右轴
- 如果其中任何一个,我需要将内容存储到一个变量中,并获取第一个(ABCDEF)第三个(10)并在其他两个文件之一中搜索(将 grep)它们,如果找到则打印一条消息并在电子邮件 DL 中附加这些文件名。所有文件名和目录都存储在单独的变量中。
我该怎么做。
ps:对文本格式和 bash/shell 命令有基本的了解,但仍在学习脚本语法。谢谢。
ABCDEF,20200101,10 <
PQRSTU,20200106,11 <
LMNOPQ,20200101,12 <
EFGHIJ,20200102,13 <
KLMNOP,20200103,14 <
STUVWX,20200104,15 <
PQRSTU,20200105,16 <
> LMNOPQ,20200101,10
ABCDEF,20200107,17 <
我现在做错了什么?
while IFS= read -r line; do
if $line =~ ([^[:blank:]]+)[[:blank:]]+\<
then
IFS=, read -r f1 f2 f3 <<< "${BASH_REMATCH[1]}"
#echo "f1=$f1 f2=$f2 f3=$f3"
zgrep "$f1" file1 | grep "with seq $f3" || zgrep "$f1" file2 | grep "with seq $f3"
elif $line =~ \>[[:blank:]]+([^[:blank:]]+)
then
IFS=, read -r g1 g2 g3 <<< "${BASH_REMATCH[1]}"
#echo "g1=$g1 g2=$g2 g3=$g3"
zgrep "$g1" file3 | grep "with seq $g3" || zgrep "$g1" file3 | grep "with seq $g3"
fi
【问题讨论】:
标签: bash shell if-statement scripting special-characters