Sam*_*ynn 8 command-line bash scripts text-processing
我在一个变量中有这家商店
sCellEventTrap-03-28 TRAP-TYPE -- CAC 代码:00
企业康柏
变量 { scellNameDateTime,
scellSWComponent,
scellE代码,
细胞CAC,
细胞EIP}
描述
“严重性:正常——本质上是信息性的。在定期驱动器检查期间,物理磁盘驱动器遇到 ID 块不一致。”
--#TYPE "StorageCell 事件"
--#SUMMARY "SCellName-TimeDate %s : SWCID %d : ECode: %d : CAC %d : EIP %d。"
--#ARGUMENTS {0,1,2,3,4,}
--#SEVERITY 信息
--#TIMEINDEX 136
--#状态警告
::= 13600808
我要削减一切,直到第二次出现". 所以这会给我:
sCellEventTrap-03-28 TRAP-TYPE -- CAC 代码:00
企业康柏
变量 { scellNameDateTime,
scellSWComponent,
scellE代码,
细胞CAC,
细胞EIP}
描述
“严重性:正常——本质上是信息性的。在定期驱动器检查期间,物理磁盘驱动器遇到 ID 块不一致。”
另一个例子
genericSanEvent 陷阱类型
企业 hpSanManager
变量 {severityLevel, category, id,
msgString、联系人姓名、联系人电子邮件、
联系工作电话,联系家庭电话,
联系寻呼机,联系传真 }
描述
“发生了一般的 SAN 事件。变量是:
严重性级别 - 事件严重性级别;
category - 被报告事件的类别;
代码 - 给定类别中事件的 ID;
msgString - 描述的消息字符串
事件;
contactName - 个人姓名
被告知事件;
contactEmail - 电子邮件地址
联系人姓名中提及的个人;
contactWorkPhone - 工作电话号码
提到的个人的
联系人姓名;
contactHomePhone - 家庭电话号码
提到的个人的
联系人姓名;
contactPager - 的寻呼机号码
联系人姓名中提及的个人;
contactFax - 个人的传真号码
在contactName中提到”
-- 以下是 xnmloadmib 用于改进格式的属性
--#TYPE "OV SAM SAN 事件"
--#SUMMARY "OV SAM SAN 事件,类别/ID:%d/%d,消息:%d 严重性:%d 联系人:%d"
--#ARGUMENTS {1,2,3,0,4}
--#严重性关键
--#通用 6
--#CATEGORY“应用程序警报事件”
--#SOURCE_ID "T"
::= 1
此示例的输出应为:
genericSanEvent 陷阱类型
企业 hpSanManager
变量 {severityLevel, category, id,
msgString、联系人姓名、联系人电子邮件、
联系工作电话,联系家庭电话,
联系寻呼机,联系传真 }
描述
“发生了一般的 SAN 事件。变量是:
严重性级别 - 事件严重性级别;
category - 被报告事件的类别;
代码 - 给定类别中事件的 ID;
msgString - 描述的消息字符串
事件;
contactName - 个人姓名
被告知事件;
contactEmail - 电子邮件地址
联系人姓名中提及的个人;
contactWorkPhone - 工作电话号码
提到的个人的
联系人姓名;
contactHomePhone - 家庭电话号码
提到的个人的
联系人姓名;
contactPager - 的寻呼机号码
联系人姓名中提及的个人;
contactFax - 个人的传真号码
在contactName中提到”
Joh*_*024 10
awk -v RS='"' -v ORS='"' 'NR==1{print} NR==2{print; printf"\n";exit}' file
Run Code Online (Sandbox Code Playgroud)
这将记录分隔符设置为". 所以,我们要打印前两条记录,然后我们就完成了。更详细地:
-v RS='"'
这将输入记录分隔符设置为双引号。
-v ORS='"'
这将输出记录分隔符设置为双引号。
NR==1{print}
这告诉 awk 打印第一行。
NR==2{print; printf"\n";exit}
这告诉 awk 打印第二行,然后打印一个换行符,然后退出。
sed -r 'H;1h;$!d;x; s/(([^"]*"){2}).*/\1/' file
Run Code Online (Sandbox Code Playgroud)
这会立即读取整个文件。因此,如果文件很大,请不要使用这种方法。它的工作原理如下:
H;1h;$!d;x
这是一个有用的 sed 习惯用法:它一次读取整个文件。
s/(([^"]*"){2}).*/\1/
这将查找第二个",然后删除第二个引号之后的所有文本。
正则表达式(([^"]*"){2})捕获直到并包括第二个双引号的所有文本并将其保存在组 1 中。正则表达式.*捕获到文件末尾的所有内容。替换文本是组 1, \1。
| 归档时间: |
|
| 查看次数: |
9486 次 |
| 最近记录: |