LInux文本处理三剑客
grep : 过滤文本
sed : 修改文本
awk : 处理文本
常用正则表达式符号
“.”:任意字符
[a-b]:a-b的任意字符
^开头,$末尾
*:任意字符数量
+:大于0数量
基本符号
.:匹配任意单个字符(除换行符)
^:匹配字符串的开始位置
$:匹配字符串的结束位置
*:匹配前一个字符零次或多次
+:匹配前一个字符一次或多次
?:匹配前一个字符零次或一次
{n}:匹配前一个字符恰好 n 次
{n,}:匹配前一个字符至少 n 次
{n,m}:匹配前一个字符至少 n 次,至多 m 次
字符类
[abc]:匹配方括号内的任意一个字符(例如 a、b、c)
[^abc]:匹配不在方括号内的任意一个字符
[a-z]:匹配任意一个小写字母
[A-Z]:匹配任意一个大写字母
[0-9]:匹配任意一个数字
[a-zA-Z0-9]:匹配任意一个字母或数字
特殊字符
\d:匹配一个数字,等价于 [0-9]
\D:匹配一个非数字字符,等价于 [^0-9]
\w:匹配一个字母、数字或下划线字符,等价于 [a-zA-Z0-9_]
\W:匹配一个非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_]
\s:匹配一个空白字符(包括空格、制表符、换页符等),等价于 [ \t\r\n\f]
\S:匹配一个非空白字符,等价于 [^ \t\r\n\f]
wc
wc -l 统计行数
wc -c 统计字节数
wc -w 统计单词数
grep 文本搜索
grep 正则表达式 filename
ls
以 . 开头的文件是隐藏文件,每个目录都有. 代表当前目录,…代表上一次目录
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件的信息
awk:awk options ‘pattern {action}’ file
当 AWK 运行时,它一次读取输入文件的一行,并将其作为当前记录。然后,它根据 AWK 脚本中的指令来处理这个记录。
less和more分页查看,more是less的简化,不支持回退
tar:打包或解包文件,没有压缩功能,可以使用gzip进行压缩解压,生成的文件后缀为tar.gz
打包:tar -cvf target.tar f1 f2 d1
解包:tar -xvf target.tar
使用 tar 和 gzip 压缩:tar -czvf archive-name.tar.gz /path/to/directory-or-file
这里是每个选项的解释:
-c:创建归档文件。
-z:通过 gzip 进行压缩。
-v:在处理文件时显示详细信息。
-f:指定归档文件的名称。
使用 tar 和 gzip 解压缩:tar -xzvf archive-name.tar.gz
gzip:压缩或解压缩文件
cat:查看文件内容
pwd:当前路径位置
rm:删除
rm -r 删除目录及其子目录
rm -f 强制删除
mv:移动或者原位改名
cp:复制
find用于在目录树中搜索文件和目录,并执行指定的操作
find [搜索路径] [搜索条件] [操作]
find /path/to/search -name “*.txt”:搜索以txt结尾的文件
find . -type d:搜索当前目录及其子目录中的所有目录:
find . -type f:搜索当前目录及其子目录中的所有文件:
find . -size +10M:搜索大于10MB的文件:
find . -size -1k :搜索小于1KB的文件:
执行操作
{} 是 -exec 选项中的占位符,表示每个找到的文件或目录的路径名。
使用; :find . -name “.txt" -exec ls -l {} ;
等同于:
ls -l file1.txt
ls -l file2.txt
ls -l file3.txt
使用 +:find . -name ".txt” -exec ls -l {} +
等同于:
ls -l file1.txt file2.txt file3.txt
find . -name “*.tmp” -exec rm -f {} ;//删除搜索到的所有 .tmp 文件:
find . -name “*.sh” -exec chmod +x {} ;//搜索所有 .sh 文件并修改权限为可执行:
find . -name “*.txt” -exec ls -l {} ;//查找所有 .txt 文件并显示详细信息:
find . -name “*.log” -exec gzip {} ;//查找并压缩 .log 文件:
chmod 修改文件权限
chmod [ugoa][±][rwx]
u:user
g:group
o:other
a:all
r:read
w:write
x:exec
chmod -r 递归修改路径权限
eg .chmod -r ug+wx test.sh
yum和apt
Debin是yum,ubuntu是apt
vim常用
dd删除行
/test 查找test,使用n下一个
u 恢复
1,$ d 删除所有
y 复制
p 粘贴
r 替换光标字符
0:移动到行首
$:移动到行尾