Linux下的col命令从标准输入读取内容,按照参数指定的规则过滤掉控制字符(如”^[OH”就是一个控制字符,代表键盘上的Home键,”^[[5~”代表PageUP键)中的“^[[”或“^[O”,防止文本出现乱码。col命令还有一个很实用的功能就是将tab制表符’\t’替换成空格。
常用参数:
-b 过滤掉所有的控制字符,包括RLF和HRLF -f 过滤RLF字符,但允许呈现HRLF字符 -x 以多个空格字符来替换tab制表符 -l<n> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小为n列
应用实例:从键盘录入控制字符到文件,过滤控制字符或替换制表符
下图中cat > col-test回车后,输入pageup -> 回车 -> 按PageUP键 -> 回车 -> 输入pagedown -> 回车 -> 按PageDown键 -> 回车 -> 输入home -> 回车 -> 按Home键 -> 回车 -> 输入end -> 回车 -> 按End键 -> 回车 -> 输入tab -> 按Tab键 -> 输入tab -> 回车 -> 同时按Ctrl键跟D键结束录入。
trevor@trevor-PC:~/linux/linux100$ cat > col-test pageup ^[[5~ pagedown ^[[6~ home ^[OH end ^[OF tab tab trevor@trevor-PC:~/linux/linux100$ cat -A col-test pageup$ ^[[5~$ pagedown$ ^[[6~$ home$ ^[OH$ end$ ^[OF$ tab^Itab$ trevor@trevor-PC:~/linux/linux100$ col -b < col-test | cat -A pageup$ 5~$ pagedown$ 6~$ home$ H$ end$ F$ tab^Itab$ trevor@trevor-PC:~/linux/linux100$ col -x < col-test | cat -A pageup$ 5~$ pagedown$ 6~$ home$ H$ end$ F$ tab tab$ trevor@trevor-PC:~/linux/linux100$
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。