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