linux文件编辑,cut、split命令

cut命令

# 以","为分隔符,输出one.csv文件的第1-2个,第4-5个,第7到最后所有的字段
cut -d , -f -2,4-5,7- one.csv

# 以","为分隔符,输出one.csv除前3个外的所有字段,以":"作为输出分隔符
cut --delimiter , --fields 3,2,1 --complement --out-delimiter : one.csv

使用awk命令实现cut

# 获取one.csv的字段个数
nf=`head -n1 one.csv | awk -F, '{print NF}'`

# 字段数量较多时使用
for((i=1;i<${nf};i++));do
  if(($i > 3 && $i < 6)); then
  	fields+="\$$i,"
  elfi(($i == 6)); then
  	fields+="\$$i,"
done

# 输出第4-6行
awk -F, "{print ${fields}}"  one.csv
# 可以调整字段顺序,并重复输出,更灵活
awk -F, "{print $2,$2$1,$0,${NF-1},${NF-3}}" -OFS=":"  one.csv

split命令

# -n或者--number指定文件分割的数量,文件大小相同,有可能会在行中断开
split -n 5 one.csv
ls -lh xa*
# xaa xab xac ...

# 只打印第4个文件,且输出不在行中间截断
split -n l/4/5 one.csv

# 10K = 10*1024 bytes, M,G,T同理
# 10KB = 10*1000 bytes, MB,GB,TB同理
# 按每一个文件10K分割,可能断行
split -b 10K one.csv
# 按每一个文件10KB分割,不断行
split -C 10KB one.csv

# -a指定文件编号长度为3,-d指定文件编号为数字,文件后缀为csdn.csv,前缀为my
# -l指定每8行分割输出一个文件
split -a 3 --additional-suffix=csdn.csv -d -l 8 one.csv my
# my000csdn.csv my001csdn.csv ...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值