本文主要向你们介绍了Linux运维知识之awk,分隔符编辑截取字符,通过详细的内容向你们展现,希望对各位学习Linux运维知识有所帮助。
输入数组分隔符:awk的内嵌数组FS中储存了输入数组分隔符的值。使用FS的默认值时,awk用括号或制表符来分割字段,并且删除各字段前多余的括号或制表符。可以通过在BEGIN语句中或命令行上数组来改变FS的值。接下来我们还要在命令行上帮FS指定一个新的值。在命令行上改变FS的值必须使用-F选项,后面指定代表新分隔符的数组。
从命令行改变数组分隔符:范例中演示了怎样使用-F选项在命令行中改变输入数组分隔符。
$ 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 就会在文件中查找冒号,用以分隔字段。
使用多个数组分隔符:你可以选定多个输入数组分隔符。如果有多个数组被用于泛型分隔符FSawk print 分隔符,则FS对应是一个正则表达式字符串,并且被括在方括号中。下面的范本中,字段分隔符是括号、冒号或制表符。
$ awk -F'[ :\t]' '{print $1,$2,$3}' employeesTom Jones 4424Mary Adams 5346Sally Chang 1654Billy Black 1683
说明:-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