Cod*_*lue 6 text-processing newlines wc
xclip/xsel是允许您将剪贴板输出通过管道传输到 Ubuntu 上的 shell 的实用程序。不幸的是,它们似乎无法与wc命令结合使用。
尝试这个。打开一个新文件并输入:
this is a line
Run Code Online (Sandbox Code Playgroud)
不按行尾的回车键。
现在,复制此文本并尝试以下操作:
$ xsel -o | wc -l
0
Run Code Online (Sandbox Code Playgroud)
输出是 0,而实际上它应该是 1。保存文件(调用它myfile.txt)。
现在尝试:
$ cat myfile.txt | wc -l
1
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,输出为 1。
为什么在第一种情况下输出为 0?
您遇到的问题是wc -l计算新行。由于您实际上还没有输入\n实际上有零个新行。
摘自wc手册页
打印每个 FILE 的换行符、字和字节计数,如果指定了多个 FILE,则打印总行。没有 FILE 或 FILE 为 - 时,读取标准输入。单词是由空格分隔的非零长度字符序列。
如果您切换它以wc计算字符数 ( -c),您会发现它实际上工作得很好并且可以计算字符数:
$ xsel -o | wc -c
14
Run Code Online (Sandbox Code Playgroud)
将其保存到文件中的作用是在文件末尾添加换行符。