最近项目中,文件内容有点多,想删除一部分的数据,如文件有1000行,想保留600行(仅用来举例,实际需求更复杂些),该怎么办呢?

不如把文件切开来,想到用 split 试试

split [-bl] file [prefix]

参数说明:
-b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
-l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。
prefix:分割后产生的文件名前缀。

 

如:

split -l 400 file1 splitfile

 执行完上一行,目录下会多出两个文件 splitfilea splitfileb

splitfilea 是400行,splitfileb是 600行

删除 splitfilea 即可,如果文件为 1300 行呢,会多出 splitfilea splitfileb splitfilec splitfiled

又想把剩余的合并呢?

# 删除 splitfilea 后执行下面语句

cat splitfile* > result   

# 或者直接合并    

cat splitfileb splitfilec splitfiled > result

 result 即为最终的文件

 

Logo

更多推荐