1

次の行の間と次の行のスペースの数(16)をどのように数えますか?S1,//

S1,                // name
4

4 に答える 4

4

一方通行:

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

テスト:

echo 'S1,                // name' | awk -F '//' '{ n = gsub(/ /, "", $1); print n }'

結果:

16
于 2013-05-30T14:55:05.050 に答える
2

本当に必要な場合は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);}'

テスト:

$ echo "S1,                // name" | awk -F[,/] ' { for (i=1;i<=NF;i++) print "$"i " is \""$i"\" of length, " length($i);}'
$1 is "S1" of length, 2
$2 is "                " of length, 16
$3 is "" of length, 0
$4 is " name" of length, 5
于 2013-05-30T14:55:31.690 に答える
0

ピュアバッシュ

x='S1,                // name'
x=${x#S1,}
x=${x%//*}
echo ${#x}
16
于 2013-05-30T15:00:18.547 に答える