回答
使用Awk。
awk '{ print length($0); }' abc.txt
我认为'打印长度;'是等效的,POSIX以及http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html – 2015-11-19 23:24:20
这也适用于mac os。 – bdemarest 2017-02-11 22:18:01
while read -r line; do echo ${#line}; done < abc.txt
这是POSIX,所以它应该工作无处不在。
编辑:添加-r建议由威廉。
+1,但是...如果输入包含'\',这将失败。使用读-r – 2012-01-09 13:27:26
试试这个:
while read line
do
echo -e |wc -m
done <abc.txt
你的意思是'echo -e | wc -m',不是吗?这是无用的命令使用; shell可以计算变量中的字符。再加上'echo -e'是完全不兼容的,并且在一半的shell中工作,而某些其他的转义序列起作用,其余的都没有。 – 2012-01-09 13:46:32
是的,正确的...错误。感谢您指出它。 – Rahul 2012-01-09 17:05:39
这里是例如使用xargs
:
$ xargs -I% sh -c 'echo % | wc -c' < file
这个“echo%”不处理需要从shell引用的不安全字符。此外,“xargs”将按空格和换行符分割文件,而不仅仅是要求原始海报的新行。 – bovine 2015-03-06 23:15:50
我试过上面列出的其它一些问题,但随着大文件的时候都从很远体面的解决方案 - 特别是一条线的大小占据了可用RAM的1/4以上。
bash和awk都浑浊了整条线,尽管对于这个问题它不是必需的。即使有足够的内存,Bash也会在线路太长时出错。
我已经实现了一个非常简单的,相当未优化的python脚本,当使用大文件进行测试时(每行大约4 GB)不会啜泣,而且远远比这些脚本更好。
如果这是时间关键的生产代码,那么在测试这确实是一个瓶颈之后,您可以用C重写想法或对读取调用执行更好的优化(而不是一次只读取一个字节)。
代码假设换行符是一个换行字符,这对Unix来说是一个很好的假设,但在Mac OS/Windows上是YMMV。确保文件以换行结束,以确保不会忽略最后一行字符数。
from sys import stdin, exit
counter = 0
while True:
byte = stdin.buffer.read(1)
counter += 1
if not byte:
exit()
if byte == b'\x0a':
print(counter-1)
counter = 0
- 1. 打印每行文字的随机数
- 2. 在包含字符串的文本文件中打印行
- 3. Unix:打印文件夹中每个文件超过80个字符的每行的文件名和行号
- 4. WPF中如何打印文本文件
- 5. 计算文本文件中的字符并打印到文本文件
- 6. 用字符数打印系列文本中最长的一行
- 7. 如何在Qt中打印文本文件到打印机?
- 8. 如何在java中打印2d数组中的文本文件?
- 9. 如何在字符串中打印每行的行号?
- 10. 如何打印目录中每个文件的最长行号?
- 11. 如何在bash脚本中打印文字字符串“$ 1”?
- 12. 如何从文本文件打印二维数组中的Java
- 13. 从特定字符串打印出文本文件中的其余行
- 14. 比较文本文件中的字符串,然后打印出整行
- 15. 如何打印多行字符串参数的每个元素?
- 16. 如何增加Eclipse控制台每行打印的字符数?
- 17. 如何打印带有制表符的文本文件?
- 18. 如何获取计数器以将输入文本文件中每行的唯一字的频率打印到输出文本文件上的相应行上?
- 19. 每行打印一个文本文件的x个字节,直到EOF
- 20. 将堆栈中的每个元素打印到文本文件中的新行
- 21. Python的 - 打印字符串的文件
- 22. 如何将文件集打印到文件,每行一个文件名?
- 23. 如何打印从文本文件的特定行用C
- 24. 如何打印文本文件的特定行?
- 25. 打印文件中每个字母的区分单词数
- 26. 如何打印CSV文件的每一行的总和蟒蛇
- 27. Powershell脚本打印文件夹中的每个文件的文件路径
- 28. 如何在使用python3的文件中打印非ASCII字符?
- 29. 打印长字符串文本LaTeX/Sweave
- 30. 从文本文件中的每一行提取位置字符
软件开发的第一条规则:“否”是指“否”。使用“num”或“number”。 – 2012-01-09 13:25:11
[引用需要]。 – uprego 2015-12-16 08:28:49