下面,我分享了我的控制台。我想从某些命令的输出中剪切一些字符串。 但是有17个额外的字符,我不知道从哪里来。 有人可以向我解释吗?
$ ls -al | grep total | sed 's/[[:blank:]].*$//' | wc -m
23
$ ns="total"
$ echo $ns | sed 's/[[:blank:]].*$//' | wc -c
6
答案 0 :(得分:2)
但是还有17个额外的字符,我不知道它们来自哪里。
grep
使用ANSI escape codes来为匹配的子字符串着色。您可能有一个别名(运行alias | grep grep
来检查)
alias grep='grep --color=always'
即使输出不是tty或类似的东西,也会导致grep
颜色匹配的某个地方。
尝试
ls -al | grep --color=never total | sed 's/[[:blank:]].*$//' | wc -m
您将得到六个。