sed 's/.\(.*\)/\1/' myfile
假设我的文件包含:
abc
def
ghi
我只想从第一行删除第一个字符,但上面的内容从所有行中删除它。
答案1
或许sed '1s/.\(.*\)/\1/' myfile
?
答案2
也可以使用awk:awk 'NR==1 {sub(/./,"")} 1'
答案3
tail
可以从a读取字节偏移量,所以如果您的文件仅使用单字节字符(通常是 UTF-8 ASCII),这样就可以了。
这取决于你的情况,无论它对你是否重要,但比......tail
更快,可能是因为sed
sed需要单独处理每一行,...但是不要在有第一行机会的地方使用它特点使用多个字节。
tail -c +2 "file"
从man tail
-c, --bytes=N 输出最后N个字节;或者,使用 +N 输出从每个文件的第 N 个开始的字节