Awk 如何计算列之间的空格

Awk 如何计算列之间的空格,awk,Awk,如何计算下一行中S1和//之间的空格16的数量: S1, // name 单向: awk -F '//' '{ n = gsub(/ /, "", $1); print n }' 测试: 结果: 16 单向: awk -F '//' '{ n = gsub(/ /, "", $1); print n }' 测试: 结果: 16 如果你真的想要awk,那么你可以建立在以下基础上 $ echo "S1, // name" | aw

如何计算下一行中S1和//之间的空格16的数量:

S1,                // name
单向:

awk -F '//' '{ n = gsub(/ /, "", $1); print n }'
测试:

结果:

16
单向:

awk -F '//' '{ n = gsub(/ /, "", $1); print n }'
测试:

结果:

16
如果你真的想要awk,那么你可以建立在以下基础上

$ echo "S1,                // name" | awk '{x=gsub(/ /," ",$0); print x}'
17
gsub返回替换的数量。显然,这个正则表达式也会发现并计算其他空间,但你明白了

或者试试这样:

echo "S1,                // name" | 
awk -F[,/] ' { for (i=1;i<=NF;i++) print "$"i " is \""$i"\" of length, " length($i);}'
测试: 如果你真的想要awk,那么你可以建立在以下基础上

$ echo "S1,                // name" | awk '{x=gsub(/ /," ",$0); print x}'
17
gsub返回替换的数量。显然,这个正则表达式也会发现并计算其他空间,但你明白了

或者试试这样:

echo "S1,                // name" | 
awk -F[,/] ' { for (i=1;i<=NF;i++) print "$"i " is \""$i"\" of length, " length($i);}'
测试: 纯粹的狂欢

x='S1,                // name'
x=${x#S1,}
x=${x%//*}
echo ${#x}
16
纯粹的狂欢

x='S1,                // name'
x=${x#S1,}
x=${x%//*}
echo ${#x}
16
仅使用awk计算S1和//之间的所有空格:

或基于注释的方法:

仅使用awk计算S1和//之间的所有空格:

或基于注释的方法:


使用grep+wc:| grep-o | wc-l@fedorqui好主意,但是你可以数一数这行的所有空间,看看我的答案,找到一个解决这个问题的经过调整的版本。使用grep+wc:| grep-o | wc-l@fedorqui好主意,但你可以数一数线上的所有空间,看看我的答案,找到一个解决这个问题的经过调整的版本,如果你觉得答案不对,请发表评论。我也在学习+1我得出了相同的结论:awk-F/{print gsub,x,$1}您的第一行计算所有空格,而不是介于和之间,如果您觉得答案错误,请发表评论。我也在学习+1我得出了相同的结论:awk-F/'{print gsub,x,$1}'您的第一行计算所有空格,而不是介于和之间的空格,我期待您的awk解决方案!我的grep+wc只是一种方法,我期待着你的awk解决方案!同时,我的grep+wc只是一种方法: