(1)grep -F的用法
grep -F指定grep命令按照字符串匹配方式工作,若没有使用-F参数,grep命令按照正则表达式匹配方式工作。
例:$cat a
1
2
[1-3]a
$grep [1-3] a
1
2
[1-3]a
$grep -F [1-3] a
[1-3]a
(2)去除文本中的重复行
例:$cat test
kkk
aaa
abc
kkk
aaa
ddd
$awk '!a[$0]++' test
kkk
aaa
abc
ddd
(3)tr命令用法
语法:tr [ options ] source-char-list replace-char-list
用途:转换字符或删除字符,也可使用sed命令实现。若不使用选项,会将source-char-list中的字符替换成replace-char-list中相应的字符。
常用选项:
-c : 取source-char-list的补集替换source-char-list,通常与-d和-s配合使用。
-d : 删除source-char-list中的字符,而不是替换它们。
-s : 去除重复的字符,如果输入中连续重复出现source-char-list里所列的字符,则将其浓缩成一个。
字符范围 :
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 走行换页\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
例1:大写字母替换成小写字母
$cat a.txt | tr "[A-Z]" "[a-z]"
例2:去除多余的空行
$cat a.txt | tr -s "[\012]"
或
$cat a.txt | tr -s "[\n]"
例3:删除数字$tr -d "[0-9]"
例4:将非字母替换成星号
$tr -c "[A-Z][a-z]" "*"
(4)数组长度:数组元素个数${#array[@]},数组的所有元素${array[*]},单个数组元素的长度 ${#array[i]},字符串长度${#str}
echo $array[i];1、获取数组元素的个数:
array=(bill chen bai hu);
num=${#array[@]} //获取数组元素的个数。
遍历数组就变成非常简单的事情:
for ((i=0;i<num;i++))
{
}
获取数组某一个单元的长度就变成了:
${#array[i]}
2、获取数组的所有元素:
${array[*]}
遍历数组就编程了非常简单的事情:
for var in ${array[*]}
do
echo $var;
done
获取数组某一个单元的长度就变成了:
${#var[i]}
3、获取字符串的长度:
str="hello"
len=${#str}