我有一个大型数据文件,其中包含以下数据:
01 01 00 2c 00 82 03 00 02 00 00 00 07 08 07 08
07 08 07 08 07 08 07 08 07 08 07 08 07 08 07 08
07 08 07 08 07 08 07 08 07 08 07 08 07 08 07 08
07 08 07 08 07 08 07 08 07 08 07 08 07 08 07 08
0f 08 08 08 0a 08 07 08 0f 08 08 08 08 08 08 08
08 08 08 08 08 07 08 07 0a 07 07 07 0f 07 08 07
08 07 08 07 08 07 08 07 08 07 08 07 0a 07 07 07
..
.....
我想删除第6行中的前n个字符
我已经找到了命令:
sed 's/^.\{,n\}//' file
但是这个命令删除了每行的前n个字符,这是我不希望发生的。
有人能建议正确的命令吗?
3条答案
按热度按时间eufgjt7s1#
GNU
sed
允许您使用address的形式第一步(~ S)
(...)匹配从第一行(...)开始的每隔一行
因此,
1~6
确实属于第1、第7、第13等等行,2~6
属于第2、第8、第14等等行,令file.txt
内容为n等于5,那么你就可以
其给出输出
9udxz4iz2#
该条件对行号
NR
使用模运算,从第一行开始每隔六行选择一行。最后一行1
使其他行正常打印。你还没有透露
n
的价值,所以我猜。jv2fixgn3#
gawk/nawk
解决方案。mawk
需要一种稍微不同方法,第一个