Alv*_*SIU 17 shell ksh aix text-processing
我正在使用 AIX 6.1 ksh shell。
我想用一个班轮做这样的事情:
cat A_FILE | skip-first-3-bytes-of-the-file
Run Code Online (Sandbox Code Playgroud)
我想跳过第一行的前 3 个字节;有没有办法做到这一点?
Jon*_*ler 26
老派——你可以使用dd
:
dd if=A_FILE bs=1 skip=3
Run Code Online (Sandbox Code Playgroud)
输入文件为A_FILE
,块大小为 1 个字符(字节),跳过前 3 个“块”(字节)。(对于dd
GNU 等一些变体dd
,您可以bs=1c
在此处使用- 以及bs=1k
在其他情况下读取 1 KB 块的替代方案dd
。AIX 上的似乎不支持这一点;BSD(macOS Sierra)变体不支持c
但是不支持k
,m
,g
,等)
还有其他方法可以达到相同的结果:
sed '1s/^...//' A_FILE
Run Code Online (Sandbox Code Playgroud)
如果第一行有 3 个或更多字符,则此方法有效。
tail -c +4 A_FILE
Run Code Online (Sandbox Code Playgroud)
你也可以使用 Perl、Python 等等。
小智 21
cat
您可以这样使用tail
,而不是使用:
tail -c +4 FILE
Run Code Online (Sandbox Code Playgroud)
这将打印出整个文件,除了前 3 个字节。咨询man tail
更多信息。