我有一个包含 64895 个字符的文件
In [95]: !wc -c 07.org
64895 07.org
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到位置 60000 的字符?
如果文件有换行符,则head和tail可用于查找特定字节。对于 ascii 字符的文件,chars 相当于字节,但非 ascii unicode 字符占用多个字节。此外,还计算换行符。要获取位置 60000 处的字节:
$ head -c 60000 file.txt | tail -c -1
Run Code Online (Sandbox Code Playgroud)
要了解其工作原理,以下循环查看前 9 个字节:
$ # First the data layout
$ echo $'123\n56\n89'
123
56
89
$ # Now get the first 9 bytes in turn
$ for i in `seq 9`; do c=`echo $'123\n56\n89' | head -c $i | tail -c -1` ; echo "$i => |$c|"; done
1 => |1|
2 => |2|
3 => |3|
4 => ||
5 => |5|
6 => |6|
7 => ||
8 => |8|
9 => |9|
Run Code Online (Sandbox Code Playgroud)
字节 4 和 7 是换行符。
有这样的cut命令:
tr -d '\n' < 07.org | cut -c60000
Run Code Online (Sandbox Code Playgroud)
第 1 部分删除换行符;第二部分然后打印第 60000 个字符(但会跳过换行符,因此如果需要将这些字符包含在 60000 的计数中,这将不起作用;))
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |