使用命令行工具处理实验数据
《UNIX编程艺术》一书中提到“UNIX最具特点的程序模块化技法就是将大型程序分解成多个协作进程”。为此,我们在Linux环境下便可以通过管道技术,将多个命令串接在一起、并行执行,充分发挥其组合效力。将如同瑞士军刀般的Linux命令行工具集及其相应的工作方式用在科研中,则可以帮助我们实现诸如测试程序输入文件的批量生成,实验数据的提取、清理、简单的格式化与后处理,以及最终的可视化。
以下列出我常用到的命令行工具:
-
find
:搜索指定文件,可以用正则表达式来匹配。 -
grep
:对信息进行过滤处理。 -
gawk
、sed
:对信息进行过滤处理与简单编辑。 -
sort
:对输入文本信息进行排序,比如,可以按数值大小、字母顺序、版本号顺序进行排序。这个命令对于排序文件名很有用。 -
cut
:根据指定的域分格符,对输入文件中的每行文本提取或删除特定的部分。 -
tr
:删除信息中指定的字符。 -
xargs
:以换行符或空格符对信息进行分割,然后将分解后的每一个元素作为指定命令的参数逐个依次执行。 -
Gnuplot
:用于快速制图,查看实验与仿真结果。当数据量很大时,Gnuplot
的绘图效率比Python高,且更是远超LibreOffice Calc。 -
head
与tail
:只显示文件的头部与尾部内容。 -
wc
:返回输入文本的行数。
子曰:“君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉,可谓好学也已。”