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

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

热门标签:打电话机器人接我是他的秘书 如果做线上地图标注 江苏云电销机器人公司 地图标注员都是年轻人 华锋e路航港口地图标注 客服外呼系统怎么样 揭阳智能电话机器人推荐 河南信誉好的不封卡电话外呼系统 百度地图标注错了有责任吗

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函数的用法小结》,本文关键词  Linux,里,awk,中,split,函数,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Linux里awk中split函数的用法小结》相关的同类信息!
  • 本页收集关于Linux里awk中split函数的用法小结的相关信息资讯供网民参考!
  • 推荐文章