次の行の間と次の行のスペースの数(16)をどのように数えますか?S1,
//
S1, // name
一方通行:
awk -F '//' '{ n = gsub(/ /, "", $1); print n }'
テスト:
echo 'S1, // name' | 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);}'
$ 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
ピュアバッシュ
x='S1, // name'
x=${x#S1,}
x=${x%//*}
echo ${#x}
16