linux – 按列拆分分隔文件到较小的文件
发布时间:2020-12-13 23:55:22 所属栏目:Linux 来源:网络整理
导读:我熟悉 linux中的split命令.如果我有一个100行长的文件, split -l 5 myfile.txt …将myfile.txt拆分为20个文件,每个文件有5行,并将它们写入文件. 我的问题是,我想通过专栏来做这件事.给定一个包含100列的文件,制表符分隔,是否有类似的命令将此文件拆分为20个
我熟悉
linux中的split命令.如果我有一个100行长的文件,
split -l 5 myfile.txt …将myfile.txt拆分为20个文件,每个文件有5行,并将它们写入文件. 我的问题是,我想通过专栏来做这件事.给定一个包含100列的文件,制表符分隔,是否有类似的命令将此文件拆分为20个较小的文件,每个文件有5列和所有行? 我知道如何使用剪切,但我希望有一个简单的UNIX命令,我从来没有听说过,如果不用perl或其他东西包裹剪切就可以实现这一点. 提前致谢. 解决方法#!/bin/bash (($# == 2)) || { echo -e "nUsage: $0 <file to split> <# columns in each split>nn"; exit; } infile="$1" inc=$2 ncol=$(awk 'NR==1{print NF}' "$infile") ((inc < ncol)) || { echo -e "nSplit size >= number of columnsnn"; exit; } for((i=0,start=1,end=$inc; i < ncol/inc + 1; i++,start+=inc,end+=inc)); do cut -f$start-$end "$infile" > "${infile}.$i" done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |