主页 > 知识库 > Linux里awk中split函数的用法小结

Linux里awk中split函数的用法小结

热门标签:Linux服务器 呼叫中心市场需求 网站排名优化 AI电销 铁路电话系统 地方门户网站 服务外包 百度竞价排名

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep.

set time = 12:34:56
set hr = `echo $time | awk '{split($0,a,":" ); print a[1]}'` # = 12
set sec = `echo $time | awk '{split($0,a,":" ); print a[3]}'` # = 56
# = 12 34 56
set hms = `echo $time | awk '{split($0,a,":" ); print a[1], a[2], a[3]}'`

——————————————————————————————————————————
Q:
name="768685676435435263341231231212321"
awk 'BEGIN {print split("$name", filearray, "")}'
为什么是1

awk 'BEGIN {print split("768685676435435263341231231212321", filearray, "")}'
则返回正确的结果,应该是7,有没有人解答一下?

A:
变量引用错误,这样做试试
awk 'BEGIN {print split('"\"$name\""', filearray, "")}'

awk规定引用系统变量必须使用单引号加双引号,即'"$sysvar"'这样的格式,但是split函数也需要双引号来定界,但这个双引号又不能让sh解释,而应留给awk来解释,所以使用了\"和\"组成的双引号

split函数的用法

he awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep.
set time = 12:34:56
set hr = `echo $time | awk '{split($0,a,":" ); print a[1]}'` # = 12
set sec = `echo $time | awk '{split($0,a,":" ); print a[3]}'` # = 56

# = 12 34 56
set hms = `echo $time | awk '{split($0,a,":" ); print a[1], a[2], a[3]}'`
set hms = `echo $time | awk '{split($0,a,":" ); for (i=1; i=3; i++) print a[i]}'`

实例一:

cat a
a:b:c:d:e:f:g:h:i
使用awk将该字符串冒号两边的段输出
cat a |awk -F':' '{split($0,arr,":")}END{for(i=1;i=NF;i++)printf("%s\n",arr[i])}'
输出结果如下
a

c
d
e
f
g
h
i

您可能感兴趣的文章:
  • Linux awk将文件某列按照逗号分隔的例子
  • 一天一个shell命令 linux文本内容操作系列-awk命令详解
  • linux awk时间计算脚本及awk命令详解
  • linux之awk命令的用法
  • Linux 中awk 提取包含某个关键字的段落

标签:衡水 仙桃 湖南 铜川 兰州 崇左 黄山 湘潭

巨人网络通讯声明:本文标题《Linux里awk中split函数的用法小结》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266