我有一个包含以下行的文件:
/logs/tc0001/tomcat/tomcat7.1/conf/catalina.properties:app.env.server.name = demo.example.com
/logs/tc0001/tomcat/tomcat7.2/conf/catalina.properties:app.env.server.name = quest.example.com
/logs/tc0001/tomcat/tomcat7.5/conf/catalina.properties:app.env.server.name = www.example.com
在上面的输出中,我想提取3个字段(数字2,4和最后一个*.example.com
)。我得到以下输出:
cat file | awk -F'/' '{print $3 "\t" $5}'
tc0001 tomcat7.1
tc0001 tomcat7.2
tc0001 tomcat7.5
如何提取域名位于'='
之后的最后一个字段?如何使用多分隔符
提取字段?
另一种方法是使用-F选项,但将其传递给regex以打印左括号和/或右括号之间的文本(
)。
文件内容:
528(smbw)
529(smbt)
530(smbn)
10115(smbs)
命令:
awk -F"[()]" '{print $2}' filename
结果:
smbw
smbt
smbn
smbs
使用awk仅打印[]
之间的文本:
使用awk-F'[]]'
但是awk-F'[]]'
将不起作用。
http://stanlo45.blogspot.com/2020/06/awk-multiple-field-separators.html
好消息awk
字段分隔符可以是正则表达式。你只需要使用-F“
awk -F"/|=" -vOFS='\t' '{print $3, $5, $NF}' file
返回:
tc0001 tomcat7.1 demo.example.com
tc0001 tomcat7.2 quest.example.com
tc0001 tomcat7.5 www.example.com
在这里:
>
-F”/“
将输入字段分隔符设置为/
或=
。
-vOFS='\t'
正在使用-v
标志来设置变量。OFS
是输出字段分隔符的默认变量,它被设置为制表符。该标志是必要的,因为没有内置的OFS,如-F
。
{print$3,$5,$NF}
根据输入字段分隔符打印第三、第五和最后一个字段。
参见另一个例子:
$ cat file
hello#how_are_you
i#am_very#well_thank#you
这个文件有两个字段分隔符,
#
和_
。如果我们想打印第二个字段,不管分隔符是哪一个,让我们都成为分隔符!
$ awk -F"#|_" '{print $2}' file
how
am
其中文件编号如下:
hello#how_are_you i#am_very#well_thank#you
^^^^^ ^^^ ^^^ ^^^ ^ ^^ ^^^^ ^^^^ ^^^^^ ^^^
1 2 3 4 1 2 3 4 5 6
分隔符可以是正则表达式。
awk -F'[/=]' '{print $3 "\t" $5 "\t" $8}' file
产生:
tc0001 tomcat7.1 demo.example.com
tc0001 tomcat7.2 quest.example.com
tc0001 tomcat7.5 www.example.com
问题内容: 我在网上找到了一些答案,但是我没有使用正则表达式的经验,我相信这里是需要的。 我有一个字符串,需要用分隔 或也就是说,它必须是分号或逗号后跟一个空格。没有尾随空格的单个逗号应保持不变 示例字符串: 应该拆分为包含以下内容的列表: 问题答案: 幸运的是,Python内置了:) 更新: 在你的评论之后:
本文向大家介绍awk RS-记录分隔符,包括了awk RS-记录分隔符的使用技巧和注意事项,需要的朋友参考一下 示例 由awk用于将输入拆分为多个记录。例如: 产生: 默认情况下,记录分隔符是换行符。 同样:echo“ abc | de f” | awk'BEGIN {RS =“ |”} {print $2}' 产生:
问题内容: 如何在JavaScript中使用多个分隔符拆分字符串?我正在尝试在逗号和空格上进行拆分,但是AFAIK,JS的拆分功能仅支持一个分隔符。 问题答案: 传递正则表达式作为参数: 编辑添加: 您可以通过选择数组的长度减去1来获得最后一个元素: …,如果模式不匹配:
问题内容: 似乎pandas read_csv 函数仅允许使用单个字符定界符/分隔符。有没有办法允许使用字符串“ * | *”或“ %%”代替? 问题答案: 解决方案是使用read_table而不是read_csv: 因此,我们可以阅读以下内容:
本文向大家介绍awk ORS-输出记录分隔符,包括了awk ORS-输出记录分隔符的使用技巧和注意事项,需要的朋友参考一下 示例 由awk用于分隔记录,并在每个print语句的末尾输出。例如: 产生: 默认值为\n(换行符)。
本文向大家介绍awk OFS-输出字段分隔符,包括了awk OFS-输出字段分隔符的使用技巧和注意事项,需要的朋友参考一下 示例 由awk用来分隔print语句输出的字段。例如: 产生: 默认值为,由单个空格组成的字符串。