通过脚本解析Linux日志文件语法

通过脚本解析Linux日志文件语法,linux,bash,Linux,Bash,我的命令输出之一是: 15 |TotalCount Hour=23 Date=2018-05-29 Result-Code=5001 AVPcode=1263 10 |TotalCount Hour=22 Date=2018-05-29 Result-Code=5001 AVPcode=1263 21 |TotalCount Hour=21 Date=2018-05-29 Result-Code=5001 AVPcode=1263 20 |TotalCount Hour=20 Date=

我的命令输出之一是:

 15 |TotalCount Hour=23 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 10 |TotalCount Hour=22 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 21 |TotalCount Hour=21 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 20 |TotalCount Hour=20 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 20 |TotalCount Hour=19 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 22 |TotalCount Hour=18 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 47 |TotalCount Hour=17 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 39 |TotalCount Hour=16 Date=2018-05-29 Result-Code=5001 AVPcode=1263
 44 |TotalCount Hour=15 Date=2018-05-30 Result-Code=5001 AVPcode=1263
 38 |TotalCount Hour=14 Date=2018-05-30 Result-Code=5001 AVPcode=1263
当我在脚本中使用这个命令并将其输出分配给X时,它变成:

 15 |TotalCount Hour=23 Date=2018-05-29 Result-Code=5001 AVPcode=1263 10 |TotalCount Hour=22 Date=2018-05-29 Result-Code=5001 AVPcode=1263 21 |TotalCount Hour=21 Date=2018-05-29 Result-Code=5001 AVPcode=1263 20 |TotalCount Hour=20 Date=2018-05-29 Result-Code=5001 AVPcode=1263 20 |TotalCount Hour=19 Date=2018-05-29 Result-Code=5001 AVPcode=1263 22 |TotalCount Hour=18 Date=2018-05-29 Result-Code=5001 AVPcode=1263 47 |TotalCount Hour=17 Date=2018-05-29 Result-Code=5001 AVPcode=1263 39 |TotalCount Hour=16 Date=2018-05-29 Result-Code=5001 AVPcode=1263 44 |TotalCount Hour=15 Date=2018-05-30 Result-Code=5001 AVPcode=1263 38 |TotalCount Hour=14 Date=2018-05-30 Result-Code=5001 AVPcode=1263 28 |TotalCount Hour=13 Date=2018-05-30 Result-Code=5001 AVPcode=1263 30 |TotalCount Hour=12 Date=2018-05-30 Result-Code=5001 AVPcode=1263 36 |TotalCount Hour=11 Date=2018-05-30 Result-Code=5001 AVPcode=1263 50 |TotalCount Hour=10 Date=2018-05-30 Result-Code=5001 AVPcode=1263 38 |TotalCount Hour=09 Date=2018-05-30 Result-Code=5001 AVPcode=1263 20 |TotalCount Hour=08 Date=2018-05-30 Result-Code=5001 AVPcode=1263 6 |TotalCount Hour=07 Date=2018-05-30 Result-Code=5001 AVPcode=1263 2 |TotalCount Hour=00 Date=2018-05-30 Result-Code=5001 AVPcode=1263

如何在X中获得相同的语法?您可以将\\n添加到行尾。第一个斜杠用于转义第二个斜杠,\n是新行字符


现在,当您打印出变量时,它将使用新的行打印出来,就像您使用的一样。

您可以简单地使用双引号$x和echo来获取变量值中的行。看看这些例子

x="here is the first line.
Here is the second line."
现在,当我们打印echo$x时:

现在,当我们打印echo$x时,输出将包含以下新行

here is the first line.
Here is the second line.

x=find-name 0.log-print | grep SERVER1 | xargs sed-n'/^Time/{n;s/\n//p}'| grep解析失败列表| awk'{print | TotalCount Hour=substr$3,1,2 Date=$2 substr$23,1,16 AVP$44}| sort-r | uniq-cno与j=find-name*.Business.0.log-print | sed-n/^Time/{xargs sed |失败列表|{print | TotalCount Hour=substr$3,1,2 Date=$2 substr$23,1,16 AVP$44}'| sort-r | uniq-cQuote您的变量:Try:echo“$X”。当您执行:echo$X时,X将展开,每个空格分隔的单词将成为echo的参数,并在过程中使用换行符。X=$your_命令;echo$X;注意echo命令中VARABLE上的双引号。您使用什么来打印变量?不要使用echo。使用printf hello\nworld\n这应该在中打印hello和world不同路线
here is the first line.
Here is the second line.