awk打印单引号:
awk '{print " ' /' ' "}'
其中: ' /' ' 这三个' 都是单引号
方便sql查询用的
awk '{printf("'/''%s'/'',", $0);}' ip.txt
sed打印行号
sed -n '/pattern/=' filename)
行号用变量替换
sed -n ''$linenum1','$linenum2'p' filename
shell 引用和内部整数算术运算
1 单引号
[pvg@server test]$ echo '$filename'
$filename
[pvg@server test]$ echo 'one two three'
one two three
2 双引号
双引号和单引号差不多,双引号忽略大多数字符。具体来说,只是美元符号、反引号、反斜杠三种不被忽略。
a)
|
|
|
3 反斜杠
a)用反斜杠续行
|
用反斜杠去掉特殊字符的意义。
|
4 反引号
用反引号能实现命令替换。命令替换是指shell能够将一个命令的标准输出插在一个命令行中的任意位置的功能。其实现可以通过把shell命令用反引号括起来或$(...)结构。
|
5 内部整数算术运算
这个内容不知道放到哪里好,暂时放到这里吧!
语法是:$((expression))
|
|
在比较操作上,整数变量和字符串变量各不相同,详见下表: 对应的操作 整数操作 字符串操作 相同 -eq = 不同 -ne != 大于 -gt > 小于 -lt < 大于或等于 -ge 小于或等于 -le 为空 -z 不为空 -n 比较字符串 a 和 b 是否相等就写作:if [ $a = $b ] 更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。(其中符号 "!" 表示求反操作) BASH 中的变量除了用于对 整数 和 字符串 进行操作以外,另一个作用是作为文件变量。BASH 是 Linux 操作系统的 Shell,因此系统的文件必然是 BASH 需要操作的重要对象,如 if [ -x /root ] 可以用于判断 /root 目录是否可以被当前用户进入。下表列出了 BASH 中用于判断文件属性的操作符: 运算符 含义( 满足下面要求时返回 TRUE ) -e file 文件 file 已经存在 -f file 文件 file 是普通文件 -s file 文件 file 大小不为零 -d file 文件 file 是一个目录 -r file 文件 file 对当前用户可以读取 -w file 文件 file 对当前用户可以写入 -x file 文件 file 对当前用户可以执行 -g file 文件 file 的 GID 标志被设置 -u file 文件 file 的 UID 标志被设置 -O file 文件 file 是属于当前用户的 -G file 文件 file 的组 ID 和当前用户相同 file1 -nt file2 文件 file1 比 file2 更新 file1 -ot file2 文件 file1 比 file2 更老Shell 整数变量和字符变量的比较操作
比如:
判断字符串 a 是否为空就写作: if [ -z $a ]
判断整数变量 a 是否大于 b 就写作:if [ $a -gt $b ]
注意:上表中的 file 及 file1、file2 都是指某个文件或目录的路径。