常见的字符匹配
[a-z] :匹配任意小写字母。
[A-Z] :匹配任意大写字母。
[a-zA-Z] :匹配任意字母(大小写)。
[0-9] :匹配任意数字字符。
\d :匹配任意数字字符,等效于 [0-9]。
\D :匹配任意非数字字符。
\w :匹配任意字母、数字或下划线字符。
\W :匹配任意非单词字符。
\s :匹配任意空白字符(空格、制表符等)。
\S :匹配任意非空白字符。
. :匹配除换行符外的任意字符。
.* :匹配所有字符。
文本控制命令:
- grep
在文件中搜索包含指定字符串的行:
grep "pattern" file.txt
这将在 file.txt 文件中搜索包含 “pattern” 的行,并将匹配到的行打印出来。
搜索多个文件中的匹配行:
grep "pattern" file1.txt file2.txt
这将在 file1.txt 和 file2.txt 文件中搜索包含 “pattern” 的行。
递归搜索目录中的文件:
grep -r "pattern" directory/
使用 -r 选项来递归搜索 directory/ 目录中的所有文件,查找包含 “pattern” 的行。
忽略大小写:
grep -i "pattern" file.txt
使用 -i 选项来忽略大小写,在 file.txt 文件中搜索不区分大小写的 “pattern”。
显示匹配行的行号:
grep -n "pattern" file.txt
使用 -n 选项来显示匹配行的行号,在 file.txt 文件中搜索 “pattern”。
使用正则表达式搜索:
grep -E "regex_pattern" file.txt
- sed命令
格式:sed [选项] ‘操作’ [文件…]
选项:
-n:使用静默模式,只打印经过编辑的行。
-e <scrip\t>:指定要执行的编辑命令。
-f :从指定的文件中读取编辑脚本。
-i:直接修改原始文件内容。
-r 或 --regexp-extended:启用扩展正则表达式语法,可以使用更复杂的匹配模式。
操作:
d:删除
p:打印
s:替换指定字符
g:全局替换
使用示例:
替换字符串:
sed 's/old_pattern/new_pattern/' file.txt
这将在 file.txt 文件中将第一个匹配到的 “old_pattern” 替换为 “new_pattern”。
全局替换字符串:
sed 's/old_pattern/new_pattern/g' file.txt
在 file.txt 文件中全局替换所有匹配到的 “old_pattern” 为 “new_pattern”。
去除空行:
sed '/^$/d' file.txt
这将从 file.txt 文件中删除所有空行。
按行号删除行:
sed '2d' file.txt
这将删除 file.txt 文件中的第二行。
插入文本:
sed '2i\inserted_line' file.txt
这将在 file.txt 文件的第二行前插入 “inserted_line”。
执行脚本文件:
sed -f script.sed file.txt
这将根据 script.sed 文件中的脚本对 file.txt 进行处理。
- awk
格式:awk [选项] ‘模式 { 操作 }’ [文件…]
常用参数:
-F <分隔符>:指定字段的分隔符。
-v <变量>=<值>:设置一个变量并赋予初始值。
-f <脚本文件>:从指定的文件中读取 awk 脚本。
使用示例:
打印文件的指定列:
awk '{ print $1 }' file.txt
这将打印 file.txt 文件的第一列。
指定分隔符并打印对应字段:
awk -F ":" '{ print $2 }' file.txt
这将使用 : 作为分隔符,打印 file.txt 文件的第二个字段。
按条件打印行:
awk '/pattern/ { print }' file.txt
这将打印 file.txt 文件中包含指定模式的行。
计算字段的总和:
awk '{ sum += $1 } END { print sum }' file.txt
这将计算 file.txt 文件的第一列的总和,并打印结果。
自定义变量和操作:
awk -v var=5 '{ print $1 * var }' file.txt
这将打印 file.txt 文件的第一列乘以自定义变量 var 的结果。
使用脚本文件处理:
awk -f script.awk file.txt
这将从 script.awk 文件中读取 awk 脚本,并使用其对 file.txt 进行处理。
Vim
U : 撤销上一次的操作。
光标移动:
gg:跳转到文件的开头。
G:跳转到文件的末尾。
0:移动到当前行的开头。
$:移动到当前行的末尾。
Ctrl+f:向下翻页。
Ctrl+b:向上翻页。
搜索查找:
/pattern:向前搜索指定模式的文本,按下回车键定位到第一个匹配项。
?pattern:向后搜索指定模式的文本,按下回车键定位到第一个匹配项。
n:向下查找下一个匹配项。
N:向上查找上一个匹配项。
删除:
x:删除光标所在位置的字符。
dd:删除当前行。
dw:删除一个单词。
d$:删除从光标位置到行尾的内容。
d0:删除从光标位置到行首的内容。
复制和粘贴
yy:复制当前行。
yw:复制一个单词。
y$:复制从光标位置到行尾的内容。
y0:复制从光标位置到行首的内容。
p:粘贴(在光标下方粘贴)。
P:粘贴(在光标上方粘贴)。
:q! 强制退出不保存
:wq! 保存并强制退出
:wq 保存并退出