Linux 文件格式化处理
文本主要涉及:
1. grep
2. sed
3. awk
4. diff
5. 正则表达式
gerp
基本参数
-n : show line
-v: show those which don't satisfied requirement.
-i: ignore the upper or lower case
[] 表示匹配一个字符
在[]中^
表示非。
grep -n '[a-z]t' filename
[:lower:] lower case
[:upper:] upper case
[:digit:] digit number
[:alnum:] number or char
[:alpha:] char
去除空白行:
grep -v '^$' filename | grep -v '^#'
sed / gsed
-n: silient,只有处理过的行会显示
-e: 在命令行模式下进行动作编辑
-f: 执行filename内的sed动作
-r: 支持扩展的正则表达式
-i: 在文件内操作
[n1,[,n2]] function
function:
a: 添加一行(下一行)
c: 替换
d: 删除
i: 插入,上一行
p: 打印
s: 替换 s/old/new/g
awk
基本变量
NF:每一行共有的字段
NR: 当前处理第几行
FS: 设定分隔符,默认为空格符
$1 表示第一个字段,用print来输出,如果需要输出非变量的话,要加上”。
awk默认用''
表示操作的内容,支持基本的逻辑运算符。
diff
用于比较两个文件间区别
-b: 忽略一行当中仅有的多个空白
-B:忽略空白行的区别
-i:忽略大小写的区别
diff file1 file2
patch
补丁,用于将一个文件更新为新的文件。
diff -Naur oldFile newFile > test.patch
patch -pN < patch_file #更新
patch -R -pN < patch_file # 还原
N表示目录的删减。在同一个目录下为0.
基本正则表达式
^: 行首
$: 行末
.:表示任意一个字符
*:表示前面一个字符为0个或多个
.*: 表示零个或多个字符
{}:表示数量范围(注意转义)
扩展正则表达式
+:重复一个或以上的前一个字符
?:重复0个或一个的前一个字符
|: or
(): 组
()+: 多个组