我遇到了一个极端问题,我能想象的所有解决方案都很复杂。根据我的UNIX / Linux经验,必须有一个简单的方法。
我想在log.txt.file中删除文件的前n个字节足够长。好吧,我相信有人会给我一个令人难以置信的简单解决方案,我无法想象。
答案 0 :(得分:0)
如何使用 -c 选项尾部
来自男人:
-c, --bytes=K
output the last K bytes; alternatively, use -c +K to output bytes starting with the Kth of each file
所以你可以做点什么 tail -c + N log.txt.file
where N is the Number of bytes to delete
示例:
[prompt]$ cat file
ABCDEFGH
[prompt]$ tail -c +2 file //output bytes starting from the second byte
BCDEFGH
[prompt]$ tail -c +3 file //output bytes starting from the third byte
CDEFGH
[prompt]$ tail -c +5 file //output bytes starting from the fifth byte
EFGH
[prompt]$ ls -l
-rw-r--r-- 1 user users 9 2014-08-07 10:22 file // 9 bytes
[prompt]$ tail -c +S file >> file2 //this will copy file content to file2 escaping the first 4 bytes
[prompt]$ ls -l file2
-rw-r--r-- 1 user users 5 2014-08-07 10:29 file2 // 5 bytes (9 - first 4 bytes)
我必须提一下,您还可以使用 - bytes 选项从文件中获取最后N个字节。
[prompt]$ tail --bytes=5 file //print the last 5 bytes
EFGH
答案 1 :(得分:0)
我不确定你想要什么:你的标题是将第一个N字节移动到另一个文件,你的文字说你要删除前N个字节
tail -c +N log.txt
将在前N个字节后输出所有内容,因此这将回答您的文本问题。 将它们移动到另一个文件(如标题要求),你必须做到
head -c N log.txt > other.file