[問題] 如何計算字串中空白的數目?

看板Linux作者 (被~~~切~~~八~~~段)時間11年前 (2012/08/19 05:35), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/1
請問在 shell script 中, 如何計算字串中空白的數目? 例如 "a bc d e" 應該有四個 " abc d " 應該有五個 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 96.55.113.197

08/19 11:32, , 1F
我剛剛玩了一下計算文件中空白的方式,我用的是sed + wc
08/19 11:32, 1F

08/19 11:33, , 2F
cat test.txt | sed 's/[^ \t]//g' | wc -c
08/19 11:33, 2F

08/19 11:33, , 3F
把非' ', '\t'清掉再計算字元數,不過會多計一個EOF
08/19 11:33, 3F

08/19 11:34, , 4F
cat test.txt | sed 's/[ \t]/1 /g' | wc -w
08/19 11:34, 4F

08/19 11:35, , 5F
上面打錯..我想說的是進一部再把把空白換成字串計word數即可
08/19 11:35, 5F

08/19 11:36, , 6F
(但這樣就有點畫蛇添足,減一還比較乾脆)
08/19 11:36, 6F

08/19 11:47, , 7F
用php/perl/C來解決比較快,拔釘子用鉗子比用起子方便
08/19 11:47, 7F

08/19 11:53, , 8F
唯一的樂趣就是單行把他完成...XD
08/19 11:53, 8F

08/19 14:42, , 9F
樓上應該去玩 Obfuscated C Code
08/19 14:42, 9F

08/19 16:21, , 10F
google來的: echo "a bc d e" | grep -o ' ' | wc -l
08/19 16:21, 10F

08/19 18:51, , 11F
推樓上
08/19 18:51, 11F

08/22 02:09, , 12F
echo -n "a bc d e" | sed 's/[^ ]//g' | wc -c
08/22 02:09, 12F
文章代碼(AID): #1GC0gRri (Linux)