团队 WC 在 linux

以下是存储在我的文件中的内容。


This is my Input


因此,使用团队
wc -c

我们可以获得存储在文件中的字符数。

我的预期结果用于使用上述文件使用

VIM

在 Ubuntu,

掠夺

16. 但是球队
wc -c

回报
17

.

为什么这个输出? 在线结束时,甚至没有回流。 那么第17个符号是什么?
已邀请:

江南孤鹜

赞同来自:

当然,你必须进入。 也许你没有看到这个。 考虑这两个例子:


echo -n "This is my Input" | wc -c
16


因为 - N. - 这是为了避免输入,但是


echo "This is my Input" | wc -c
17


看看这个例子,请参阅新字符串。

https://i.stack.imgur.com/Mqjlw.png
怎么看一个新的字符串?


echo "This is my Input" | od -c


DAMPA文件 od 以八进制和其他格式

-c 选择 ASCII 符号或背板屏蔽


但是文件和使用的示例 od
https://i.stack.imgur.com/r40mr.png

江南孤鹜

赞同来自:

在 Linux, 什么时候

VIM

保存缓冲区,它通过添加新的字符串字符串终止器完成每个字符串。 十六进制转储

编辑文件。 VIM.

您可以打开文件并输入
:!xxd

查看

十六进制

或直接使用命令
hexdump yourfile

.


0000000: 5468 6973 2069 7320 6d79 2049 6e70 7574 This is my Input
0000010: 0a .
~
~
~


您可以看到文件已添加
0a

在文件的末尾。

所以当你使用时
wc -c

要获取此文件号,它将返回

17

, 其中包括一个新的字符串符号。

龙天

赞同来自:

你有
17

由于
/0

chaeracter.

江南孤鹜

赞同来自:

输入作为输入数据的输入字符串没有输入/新字符串但是 echo 分配它输入/新字符串。 和 wc -c 从给定命令读取输入或新字符串 echo.

例如


echo k | wc -c


回报 2 因为 1 为了 k 和 1 添加了一个新的行 echo

直到


echo -n k | wc -c


回报 1, 因为 - n抑制了一个新的字符串。

但厕所 -c 始终读取一个新的字符串符号。

你可以试试


printf k | wc -c


返回 1

看看他在文件中所做的


bash-4.1$ echo 1234 > newfile
bash-4.1$ cat newfile
1234
bash-4.1$ cat -e newfile
1234$
bash-4.1$ printf 1234 > newfile
bash-4.1$ cat newfile
1234bash-4.1$ cat -e newfile
1234bash-4.1$

要回复问题请先登录注册