我想根据第一列的数字(1最高30(过滤一个文件,并将一个文件保存给对应于过滤参数的行。因此,最后,应创建30个文件。我正在尝试使用shell and Awk使用for循环来执行此操作,但它行不通。
for (( K=1; K <= 30; K++ )); do awk '{if($1==$K) print $0}' example_file.map > example_file_CHR${K}.map; done
您需要的就是这样...
awk '1<=$1 && $1<=30 {print > "file_"$1}' file
不需要bash循环。