Chinaunix
标题:
获取字符串前面空格的长度
[打印本页]
作者:
Piaomiao139
时间:
2014-08-20 16:06
标题:
获取字符串前面空格的长度
比如说
a=“ aaa xxx ccc ”
我现在要获取a前面的字符串长度应该怎么样呢?
是
sed -n '/^\s*/' "$a" 显然是不行的 在sed中到底是如何使用正则表达式的呢?
新手伸手。。。
作者:
Piaomiao139
时间:
2014-08-20 16:13
空格的长度
。。。
作者:
ly5066113
时间:
2014-08-20 16:26
回复
1#
Piaomiao139
echo "$a" | awk -F aaa '{print length($1)}'
复制代码
作者:
zhaopingzi
时间:
2014-08-20 16:37
awk 'BEGIN{ a=" aaa xxx ccc xx ";print index(a,"a")}'
6
复制代码
作者:
yestreenstars
时间:
2014-08-20 16:48
awk '{print length(gensub(/^([[:space:]]*).*/,"\\1",1))}'
复制代码
作者:
Piaomiao139
时间:
2014-08-20 16:49
回复
3#
ly5066113
$ echo "$a" | nawk -F aaa '{print length($1)}'
17
$ echo "$a"
zzz xxx cc
明显不对。。。啊 这个应该是所有的空格吧?
作者:
Piaomiao139
时间:
2014-08-20 16:53
这个。。。不对啊
我的意思是获取
aaa前面空格的长度
如果写一个通用的方法怎么写呢?
不只是适用一个的
看来 没有看书。。。。
怎么sed不支持这种处理方式或者说awk在这上面处理有优势?
作者:
Piaomiao139
时间:
2014-08-20 16:55
回复
4#
zhaopingzi
认真数数发现是5个空格而不是6个
我想写的是一个通用的方法不是只适用一个。。。
谢谢
作者:
ly5066113
时间:
2014-08-20 17:05
回复
6#
Piaomiao139
echo "$a" | awk -F '[a-z]' '{print length($1)}'
复制代码
作者:
zhaopingzi
时间:
2014-08-20 17:11
本帖最后由 zhaopingzi 于 2014-08-20 17:14 编辑
str=" aa bb cc "
expr index "$str" "a" - 1
3
复制代码
作者:
zhaopingzi
时间:
2014-08-20 17:12
回复
8#
Piaomiao139
见10楼
作者:
Piaomiao139
时间:
2014-08-20 17:27
回复
10#
zhaopingzi
好像不支持这个语法 bash
作者:
Piaomiao139
时间:
2014-08-20 17:27
回复
9#
ly5066113
这个上面可以其它得试试。。。。
tq
作者:
MeRcy_PM
时间:
2014-08-20 17:34
grep -Po "^ *" | wc -m
复制代码
再减一吧。
作者:
zhaopingzi
时间:
2014-08-20 17:34
回复
12#
Piaomiao139
-前后有空格,你改了吗
作者:
lifayi2008
时间:
2014-08-20 18:07
awk '{print match($0,/[^ ]/)-1}' c.txt
awk '{print length($0)-length(gensub(/ +/,"",1))}' c.txt
复制代码
作者:
Piaomiao139
时间:
2014-08-21 17:43
回复
15#
zhaopingzi
用不起 不知道为什么。
作者:
reb00t
时间:
2014-08-22 11:52
本帖最后由 reb00t 于 2014-08-22 11:53 编辑
<?php
$a=" aaa xxx ccc ";
echo strpos($a, "a");
?>
复制代码
4[Finished in 0.2s]
作者:
rulebook
时间:
2014-08-25 17:15
a=" aaa xxx ccc ";echo "${a%%[a-z]*}" | wc -L
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2