我需要抓取长文本文件的第一行,以便在较小的文件上进行一些错误修复(Python 脚本没有按预期消化大文本文件)。然而,为了使错误修正有意义,我真的需要这些行是完美的副本,基本上是逐字节的,并找出字符编码、行尾字符、不可见字符或不可见字符的任何潜在问题原来的.txt 以下简单的解决方案会实现这一点,否则我会使用 的输出丢失一些东西head吗?
head infile.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
在与二进制拷贝一个更一般的问题head,dd或者别的现已公布在这里。
我正在尝试确定此find命令不起作用的根本原因;它不应该与this_should_not_match下面调用的文件匹配:
$ > find . -type f -name "*[^ -~]*"
./__º?t
./this_should_not_match
./__?_u
./__¡VW
./__??Z
./__?è_
./__??_
./__?_9
./__?hm
./__?Y_
Run Code Online (Sandbox Code Playgroud)
我的外壳是 Bash 3.2
我有一个代码点列表,如 0x13000、0x1300A。我必须从 bash 打印相应的 Unicode 字符。我已经尝试使用在论坛中搜索到的其他命令来执行此操作(在 bash 中,如何将 Unicode 代码点 [0-9A-F] 转换为可打印字符?),但他们没有工作。
我试过了
echo -ne 'x13000/x130FF/' | iconv -f utf-16be
Run Code Online (Sandbox Code Playgroud)
并且,在终端上使用 perl
perl -C -e 'print chr 0x130F0'
Run Code Online (Sandbox Code Playgroud) 在某些情况下,需要知道(使用)每个单独字符的整理顺序。它通常用正则表达式的字符类表示,如[b-d]. 该字符类将仅匹配给定范围内的一个字符。
哪些单个字符是该范围b-d(或其他范围)中的字符。
还知道 C 语言环境中的整理顺序是每个 ASCII 字符[a]的字节值(仅显示 33 到 126 的字符):
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Run Code Online (Sandbox Code Playgroud)
字符范围可以扩展到 ASCII 之外吗?
但:
其他语言环境中单个字符的整理顺序是什么?
有没有办法 s?h?o?w? 这样的整理顺序(在任何语言环境中)?
[a]在使用 ASCII 的系统(大多数系统)中,但其他系统可能使用 EBCDIC 甚至其他东西。
我正在解析/proc/pid/cmdline我的 Linux 系统 (Ubuntu 16.04) 上许多进程的值,并发现虽然大多数条目是空编码的,但正如预期的那样,至少有一个使用空格作为我发现意外的分隔符。
从proc(5) 的文档中,我没有看到任何迹象表明这应该发生。有没有我应该期望空格作为分隔符而不是空值的情况?如果是这样,我在哪里可以找到描述该行为的文档?
这是我尝试为铬浏览器进程之一捕获 cmdline 时看到的内容(请注意,空格字符用于分隔值):
user@host:~$ cat /proc/2721/cmdline
/usr/lib/chromium-browser/chromium-browser --type=gpu-process --field-trial-handle=2073283832741738928,4790986738309707242,131072 --gpu-preferences=GAAAAAAAAAAAAQAAAQAAAAAAAAAAAGAA --gpu-vendor-id=0x15ad --gpu-device-id=0x0405 --gpu-driver-vendor=Mesa --gpu-driver-version=17.2.8 --gpu-driver-date --service-request-channel-token=3778166CAD6E96F44A7268DF1AB1DD53
Run Code Online (Sandbox Code Playgroud)
我希望看到这样的事情(空值作为分隔符),这是我不从系统上的其他进程看:
~$ cat /proc/354/cmdline
vmware-vmblock-fuse/run/vmblock-fuse-orw,subtype=vmware-vmblock,default_permissions,allow_other,dev,suid
Run Code Online (Sandbox Code Playgroud) 我对西里尔字母有疑问。我的终端将正常显示西里尔字母以及我的大多数程序,到目前为止我发现的唯一例外是ls。它显示的不是普通的西里尔字母?????? ???。
我正在运行 macOS Mojave。
包括屏幕截图。
我正在尝试调查为什么我的图书馆无法正确渲染此 ANSI 艺术作品:
我虽然问题出在我的 ANSI 转义处理中,但似乎在真实终端中是相同的(在 XFce 终端中测试)。
我不知道如何调试它,该文件采用 CP437 编码,可以在16colo.rs 网站找到。我已将其转换为 UTF8(也删除了显示每行字符数的元标记)并且可以在此处找到该文件: https: //jcubic.pl/text.ans终端需要有 80 列,否则它不会正确显示。
我很乐意回答它为什么坏了,但知道如何修复它并正确显示也很好。
我想修复字符串“\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2 中的编码\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0" 并获得正确的UTF-8字符串“\xd0\x9f\xd0\xb5\xd1\x80\xd0\xb5\xd0\xbf\xd1\x80\xd0\xbe\xd1\x88\xd0\xb8\xd1\x82\xd1\x8c\xd0\xa1\ xd1\x8b\xd1\x80\xd0\xbe\xd0\xb5\xd0\xb6\xd0\xba\xd0\xb8\xd0\xbd\xd0\xb0"。\n该网站告诉我,我需要从 转换ISO-8859-1为Windows-1251以获得正确的结果,但是当我尝试使用iconv此方法时,出现此错误:
$ echo \'\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0\' | iconv -f iso-8859-1 -t windows-1251 -\niconv: illegal input sequence at position 0\nRun Code Online (Sandbox Code Playgroud)\nWindows-1251我也不明白的是为什么当我想获得结果时需要将字符串转换为UTF-8.
编辑:\n我也尝试使用enconv,但结果也不令人满意。
$ echo \'\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0\' | enca -L ru -\nUniversal transformation format 8 bits; UTF-8\n Doubly-encoded to UTF-8 from ISO-8859-5\n$ echo \'\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0\' | enconv -L ru -x UTF-8 -\n\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0\n$ echo \'\xc3\x8f\xc3\xa5\xc3\xb0\xc3\xa5\xc3\xaf\xc3\xb0\xc3\xae\xc3\xb8\xc3\xa8\xc3\xb2\xc3\xbc \xc3\x91\xc3\xbb\xc3\xb0\xc3\xae\xc3\xa5\xc3\xa6\xc3\xaa\xc3\xa8\xc3\xad\xc3\xa0\' | enconv -L …Run Code Online (Sandbox Code Playgroud) 我使用的是 Manjaro GNOME。我通过添加/删除软件从 AUR 安装了这个软件包:https://aur.archlinux.org/packages/github-desktop/
它告诉我,我需要重新启动,因为它/安装/重新安装了一些内核模块或其他东西。现在我的默认 gnome 终端无法工作。我无法打开它。
当我尝试通过键盘快捷键或图标打开它时,它尝试启动但从未显示。我可以将其视为一个进程,它在我的系统监视器中显示一秒钟,然后就消失了。
我安装了另一个(Deepin)终端。当我打开它时,我得到的是:
_p9k_init_params:72: character not in range
manjaro%
Run Code Online (Sandbox Code Playgroud)
alacritty 终端也会发生同样的情况。
GNOME 终端有 ZSH 和很多表情符号等。