先上代码
echo 'foo,bar' | awk '{n = split($0,a,/,/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
echo 'foo,bar' | awk 'BEGIN{FS=","}{n = split($0,a); for(i=1;i<=n;i++) print a[i]}'
foo
bar
echo 'foo,bar' | awk '{n = patsplit($0,a,/[^,]*/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
echo 'foo,bar' | awk 'BEGIN{FPAT="[^,]*"}{n = patsplit($0,a); for(i=1;i<=n;i++)print a[i]}'
foo
bar
echo "123aaa345bbb678ccc" | awk '{n = patsplit($0,a,/[[:digit:].]+/); for(i=1;i<=n;i++) print a[i]}'
123
345
678
echo "123aaa345bbb678ccc" | awk 'BEGIN{FPAT="[[:digit:].]+"}{n = patsplit($0,a); for(i=1;i<=n;i++) print a[i]}'
123
345
678
split默认是以FS为分隔符,直接切割字符串
patsplit是pattern split的意思,是将pattern匹配成功的部分放到队列里,默认是以FPAT为匹配正则
本文详细讲解了awk命令在使用split和patsplit进行字符串分割的不同场景,包括默认分隔符、正则表达式匹配,并展示了如何利用FPAT控制匹配模式。适合理解awk的基本操作和正则表达式在文本处理中的应用。
1

被折叠的 条评论
为什么被折叠?



