假设目的:统计并输出指定文件夹下所有文件行数
单个文件可以用 wc -l ;多个文件,可以用通配符 / 借助bash脚本
1.定义变量名,使用引号
a="bestqc.com.map"
b="Anno.variant_function"
c="enrichment/GOenrich.xlsx"
d="enrichment/KEGGenrich.xlsx"
2.合并变量,有空格/无空格
list="$a $b $c $d"
3.引用变量名
$list
4.读取列表变量值:从命令读取变量 如 for state in $(cat file.txt)
for state in $list
doecho $(wc -l $state)
done
合并所有步骤,保存到1个脚本 1.sh,如下:
#!/bin/basha="bestqc.com.map"
b="Anno.variant_function"
c="enrichment/GOenrich.xlsx"
d="enrichment/KEGGenrich.xlsx"list="$a $b $c $d"for state in $list
doecho $(wc -l $state)
done
修改脚本权限:chmod 777 1.sh
运行脚本及结果: ./ 1.sh
输出到新的文件夹:./1.sh > 1.txt
以上,可以简化为如下,根据通配符统计
统计文件列数
awk 'END{print NF}' bestqc1.bim
按指定分隔符统计列数
awk -F ',' 'END{print NF}' sname.csv
统计每行列数
awk -F',' '{print NF}' sname.csv