## grep
从文件内容查找匹配指定字符串的行:
grep “被查找的字符串” 文件名
例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
grep “thermcontact” /.in
从文件内容查找与正则表达式匹配的行:
grep –e “正则表达式” 文件名
查找时不区分大小写:
grep –i “被查找的字符串” 文件名
查找匹配的行数:
grep -c “被查找的字符串” 文件名
从文件内容查找不匹配指定字符串的行:
grep –v “被查找的字符串” 文件名
## cat
去重,重复的行只输出1个
cat test8.txt|sort|uniq
## sed
每行的前面加一个 w
sed 's/^/w/g' file1.txt
在每行前加',在每行尾加',
sed -e 's/^/'/g' -e "s/$/',/g" file1.txt
从最后一行倒序输出
sed '1!G;h;$!d' test1.txt
查找匹配的行
sed -n '/workflowId/'p failed_keyframe.txt
删除匹配的行
sed -e '/recording/d' new_prod_all_packages.txt
替换所有匹配字符串,将"a"替换为“b”:
sed 's/a/b/g' test6.txt
## awk
打印文件的第一列
awk '{print $1}' test1.txt
打印最后一列
awk -F/ '{print $NF}' test1.txt -F/表示用/分隔,如果是空格则将-F/删除
打印列数
awk -F/ '{print NF}' test1.txt -F/表示用/分隔,如果是空格则将-F/删除
提取第二列的值>=15 的行
awk '$2 >= 15' test1.txt
打印行号
awk '{print NR}' test1.txt
反选 模糊查询
awk '{if($0!~/duplicate/)print}' file1.txt
在file1中删除同时在file1和file2中的内容
awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1
计算第1列的和
awk '{sum += $1};END {print sum}' file1.txt
## vim
在每行行首添加相同的内容:
:%s/^/要添加的内容
在每行行尾添加相同的内容:
:%s/$/要添加的内容
利用正则表达式删除代码段每行的行号
:%s/^\s*[0-9]*\s*//gc
其中,^表示行首,$表示行尾,\s表示空格,[0-9]表示0~9的数字,*表示0或多个,%s/^\s*[0-9]*\s*//gc的意思是将每行以0或多个空格开始中间包含0或多个数字并以0或多个空格结束的字符串替换为空
## 文件处理
创建空文件,指定大小
mkfile -n 34m filename