Regex Linux逐行读取文件,打印正则表达式并打印两种模式之间的所有内容

Regex Linux逐行读取文件,打印正则表达式并打印两种模式之间的所有内容,regex,linux,awk,Regex,Linux,Awk,我制作了这个脚本: for i in `cat PDV_List` do echo $i ssh $i /tmp/checkutilisateur.sh done > hc_connesse awk '/^+-------------+/{PTN=1} /^\(/{PTN=0} PTN' hc_connesse echo " " hc_connesse的输出为: SE401 INGRES TERMINAL MONITOR Copyright 2011 Actian Cor

我制作了这个脚本:

for i in  `cat PDV_List`
do echo $i
ssh $i /tmp/checkutilisateur.sh
done > hc_connesse
awk '/^+-------------+/{PTN=1} /^\(/{PTN=0} PTN' hc_connesse
echo "       "
hc_connesse的输出为:

SE401 
INGRES TERMINAL MONITOR Copyright 2011 Actian Corporation
Ingres Linux Version II 10.1.0 (a64.lnx/126)GPL login 
Fri May 22 13:47:36 2020 
Enter \g to execute commands, "help help\g" for help, \q to quit

continue
* Executing . . .


+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
|num          |nom                           |mdp   |numpro|numcai|numcle       |coffre|consig|datemodif                |matcv |cre_hot                  |deb_ctrl                 |fin_ctrl   |top_vi|
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
| some data here
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
(12 rows) continue
*  Your SQL statement(s) have been committed.

Ingres Version II 10.1.0 (a64.lnx/126)GPL logout 
Fri May 22 13:47:36 2020
我无法从康奈斯大学打印SE401

查询是在45个不同的服务器上进行的,如果不将SE04放在表之前,将无法理解哪些数据来自何处

尝试另一个循环,在另一个循环之前插入另一个awk

试着把两个awk放在一条线上

很可能我写错了什么,因为我对脚本所做的任何更改,控制台都像是在等待输入


你知道如何打印SE04吗?

很难猜测你的问题主体和标题之间的关系。如果我理解正确,您希望打印第一行(
SE
后接数字)和数据库查询的输出

尝试:

awk
在这里所做的是打印以
SE
+
|
开头的每一行。如果您需要其他内容,请编辑您的问题以使其易懂

您可能不想保留hc\U connesse的副本。在这种情况下,只需从上面的命令中删除字符串
teeh_connesse

输出:

SE401 
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
|num          |nom                           |mdp   |numpro|numcai|numcle       |coffre|consig|datemodif                |matcv |cre_hot                  |deb_ctrl                 |fin_ctrl   |top_vi|
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
| some data here
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 


+
在正则表达式中有特殊含义,您需要对其进行转义。没有以
开头的行(
),您希望与
匹配的是什么/^\(/
awk'NR==1'文件
?@Barmar编辑了代码。缺少一个CR。我能够获取从表开始的+-----------+到表结束的+-----------+之间的所有内容。您确定在
checkUserateur.sh
中运行的任何命令都没有选项只向您提供所需的输出吗nt,这样以后就不必使用其他工具(如awk)对其进行后期处理了吗?看起来您正在将stderr与stdout混合在一起,并且您运行的任何查询都可能有选项。感谢代码。我让它变得过于复杂了。它可以工作!
awk'/^SE/|/^+/|/^/'
=
awk'/^(SE.[+]/“
=
grep-E'^(SE |[+|])”
for
循环需要重写为
,而IFS=read-ri;do echo“$i”;ssh“$i”/tmp/checkUsiateur.sh;done
则需要修复各种问题。有关更多信息,请参阅和。
SE401 
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
|num          |nom                           |mdp   |numpro|numcai|numcle       |coffre|consig|datemodif                |matcv |cre_hot                  |deb_ctrl                 |fin_ctrl   |top_vi|
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+ 
| some data here
+-------------+------------------------------+------+------+------+-------------+------+------+-------------------------+------+-------------------------+-------------------------+-------------------------+------+