tag 20954 + notabug close 20954 thanks tele wrote:
Hi!
Hi!
From terminal: $ a="" ; echo $s | wc -l 1
Do you mean $a instead of $s? Either way is the same though assuming $s is empty too. - Yes, my mistake :-)
Should be 0 , yes ?
No. Should be 1. You have forgotten about the newline at the end of the command. The echo will terminate with a newline. You can see this with od. echo | od -tx1 -c 0000000 0a \n Since this appears to be a usage error I have closed the bug. Please feel free to follow up with more information. We will read it. And we appreciate additional communication! I am simply closing it to keep the accounting straight. Bob # "echo" gives in new line, "echo -n" subtracts 1 line, but "wc -l" can count only from new line, # so if something exist inside first line "wc -l" can not count. :-( # example: # # $ a="j" ; echo "$a" | wc -l # 1 # # $ a="" ; echo "$a" | wc -l # 1 # # $ a="" ; echo -n "$a" | wc -l # 0 # # $ a="j" ; echo -n "$a" | wc -l # 0 So, $ a="" ; echo "$a" | sed '/^\s*$/d' | wc -l 0 $ a="3" ; echo "$a" | sed '/^\s*$/d' | wc -l 1 Can be added option to "wc" to fix this problem without use sed in future ? Thanks for helping :-)