排序算法按照元素所在的位置可以分为内部排序(internal sort)和外部排序(external sort)。这里我们讨论的都是内部排序算法,即整个排序工作都能够在内存中完成。且约定需要排序的数组中元素个数为N。1. 插入排序插入排序(insertion sort)是最简单的排序算法之一,其特性如下:插入排序由N-1趟(pass)排序组成;在第P趟,我们将位置P上的元素向左移动到它在前P...
1. getopt介绍getopt函数主要用来解析命令行参数,getopt族的函数原型如下:#include <unistd.h>
int getopt(int argc, char * const argv[],
const char *optstring);
extern char *optarg;
extern int optind, opterr,...
在Linux中,有两种流行的正则表达式(Regular Expressions)引擎:
POSIX基本正则表达式(BRE)引擎
POSIX扩展正则表达式(ERE)引擎
大多数Linux工具都支持BRE,但是只有一些工具支持ERE。1. BRE模式
RE字符
含义及范例
^word
含义:待查找的字符串(word)在行首
范例:查找行首为#开始的那一行,并列...
1. gawk概述在《sed编辑器基本用法》一文中我们已经介绍了Linux世界中使用最广泛的两个命令行编辑器之一——sed,今天我们来介绍另外一个:gawk。gawk是Unix中原始awk程序的GNU版本,比sed功能更加强大,因为它提供了一个类编程环境,允许我们修改和重新组织文件中的数据。gawk的特点如下:
定义变量来保存数据;
使用算术和字符运算符来处理数据;
使用结构化编...
1. sed流编辑器原理概述一般我们更习惯说sed为linux命令,但更准确的说法应该是sed流编辑器。和普通的交互式文本编辑器不同,流编辑器是在编辑器处理数据之前基于预先提供的一组规则来编辑数据流;而交互式文本编辑器(比如vim)则是通过键盘命令来交互式的插入、删除或者替换数据中的文本。sed编辑器可以基于输入到命令行的或是存储在命令文本文件中的命令来处理数据流中的数据。它每次从输入读入一...
shell对于数值计算支持的不是特别好,而且bash shell的数学操作符只支持整数运算(z shell提供了完整的浮点数运算),如果想要进行浮点数运算,需要采用一些其他方法,下面我们总结一下shell中如何进行数学计算。1. expr命令expr命令我们可以进行一些简单的数学运算或者字符串运算,下面是expr命令支持的操作符(参见man文档):
操作符
说明
AR...
1. 重定向1.1 输出重定向可以使用大于号(>)或者双大于号(>>)将命令的输出重定向,最常见的是重定向到文件中。大于号会在用新的文件数据覆盖旧的已经存在的文件,双大于号则是将新数据追加到已有的文件数据后面。1.2 输入重定向输入重定向与输出重定向相反,是将文件的内容重定向到命令,输入重定向有两种:(1)普通的输入重定向,符号是小于号(<),格式为command &...
1. Shell环境变量介绍
shell的环境变量分为全局变量和局部变量。
全局变量对所有的shell会话及其子进程都有效,局部变量只在定义它们的进程中可见。
可以使用printenv查看全局变量,使用set查看全局变量和局部变量。
使用export可以将局部变量导出为全局变量。
使用unset可以删除一个已定义的环境变量。
shell有许多默认的环境变量,但不是每一...
- « 前一页
- 1
- ...
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- ...
- 13
- 后一页 »