Linux的Vim和正则表达式

常见的字符匹配
[a-z] :匹配任意小写字母。
[A-Z] :匹配任意大写字母。
[a-zA-Z] :匹配任意字母(大小写)。
[0-9] :匹配任意数字字符。
\d :匹配任意数字字符,等效于 [0-9]。
\D :匹配任意非数字字符。
\w :匹配任意字母、数字或下划线字符。
\W :匹配任意非单词字符。
\s :匹配任意空白字符(空格、制表符等)。
\S :匹配任意非空白字符。
. :匹配除换行符外的任意字符。
.* :匹配所有字符。

文本控制命令:

  1. 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
  1. 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 进行处理。

  1. 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 保存并退出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值