使用sed删除Linux中文本文件任何一行的前五个字符


Answers:


81
sed 's/^.....//'

手段

替换(“ s”,替换)行首,然后将5个字符(“。”)替换为空

有更紧凑或灵活的方式来使用sed或cut编写此代码。


您如何对字符串的最后一个字符执行此操作?
blarg 2015年

3
@blarg trysed 's/.$//'
Rodrigo

加1回答问题的“ with sed”部分,然后提到cut更好
sg 2016年

138

用途cut

cut -c6-

这将从第6列(第一列为1)开始打印输入的每一行。


1
在这里,cut具有比sed更好的性能,但是在utf-8编码字符上使用时遇到问题。
PSchwede

只是为了详细说明@PSchwede的注释,cut即使您使用该-c选项,GNU也会将所有字符视为字节。GNUcut不支持多字节字符,并且在可预见的将来可能不支持多字节字符
Harold Fischer



0

sed 's/^.\{,5\}//' file.dat 对我来说就像一个魅力

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.