linux 字符分隔符,Linux运维知识之awk,分隔符编辑截取字符

f8f957f1b89616bcc2f2755fc2d1f1c2.gif

本文主要向你们介绍了Linux运维知识之awk,分隔符编辑截取字符,通过详细的内容向你们展现,希望对各位学习Linux运维知识有所帮助。

850dba0bd820eeb8b24d7026c5046575.png

a2b6c105f69bc825f23de20cc89ee8a1.png

输入数组分隔符:awk的内嵌数组FS中储存了输入数组分隔符的值。使用FS的默认值时,awk用括号或制表符来分割字段,并且删除各字段前多余的括号或制表符。可以通过在BEGIN语句中或命令行上数组来改变FS的值。接下来我们还要在命令行上帮FS指定一个新的值。在命令行上改变FS的值必须使用-F选项,后面指定代表新分隔符的数组。

从命令行改变数组分隔符:范例中演示了怎样使用-F选项在命令行中改变输入数组分隔符。

3b5092291c6d6902ea7c3167770e29b3.png

$ cat employeesTom Jones:4424:5/12/66:543354Mary Adams:5346:11/4/63:28765Sally Chang:1654:7/22/54:650000Billy Black:1683:9/23/44:336500$ awk -F: '/Tom Jones/{print $1,$2}' employeesTom Jones 4424

说明:-F选项用来在命令行重新修改输入数组分隔符的值。当冒号紧跟在-F选项的前面时,awk 就会在文件中查找冒号,用以分隔字段。

20180704205449449578.png

使用多个数组分隔符:你可以选定多个输入数组分隔符。如果有多个数组被用于泛型分隔符FSawk print 分隔符,则FS对应是一个正则表达式字符串,并且被括在方括号中。下面的范本中,字段分隔符是括号、冒号或制表符。

$ awk -F'[ :\t]' '{print $1,$2,$3}' employeesTom Jones 4424Mary Adams 5346Sally Chang 1654Billy Black 1683

1f5a2a2c5d248a0b8505ca3f9195c54e.gif

说明:-F选项后面和了一个位于方括号中的正则表达式,当遇到空格、冒号或制表符时awk print 分隔符,awk会把它当作字段分隔符。这个通配符两头加了逗号,这样就不会被shell当成自己的元字符来解释(注意, shell使用方括号来进行文件名扩展)。

输出数组分隔符:默认的输出数组分隔符是单个空格,被储存于awk的内置函数OFS中。此前的所有实例中,我们都是用print语句把输出打印到屏幕上。因此,无论OFS如何修改,print语句中用于分割字段的逗号,在输出时都被转化成OFS的值。如果用OFS的默认值,则$1和$2之间的逗号会被转化为单个空格,print函数打印这两个字段时会在他们之间加一个空格。

如果没有用引号来分隔字段,则输出结果中的字段将堆在一起。另外,OFS的值可以改变。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-134685-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值