printf "%s\n" *>> read.md
- 删除整行——dd/D
- 跳转到最后一行——G
- 跳转到第一行——gg
- 跳转到下一行——k
- 跳转到上一行——o
sudo snap info okular
export PATH=$PATH:/directory
link:https://www.runoob.com/regexp/regexp-syntax.html
正则表达式的基本语法包括多种元素和构造,用于匹配字符串中的特定模式。以下是一些常见的基本语法元素:
.
:匹配任意单个字符(除了换行符)。[abc]
:匹配字符集中的任意一个字符(例如,[abc]
匹配a
、b
或c
)。[^abc]
:匹配不在字符集中的任意一个字符(例如,[^abc]
匹配除了a
、b
和c
之外的字符)。[a-z]
:匹配范围内的任意字符(例如,[a-z]
匹配小写字母)。
*
:匹配前面的元素零次或多次。+
:匹配前面的元素一次或多次。?
:匹配前面的元素零次或一次。{n}
:匹配前面的元素恰好 n 次。{n,}
:匹配前面的元素至少 n 次。{n,m}
:匹配前面的元素至少 n 次,但不超过 m 次。
^
:匹配字符串的开始。$
:匹配字符串的结束。\b
:匹配单词边界(例如,空格、标点符号等)。\B
:匹配非单词边界。
\
:用于转义特殊字符,使其失去特殊含义。例如,\.
匹配字面上的点字符。
(abc)
:匹配abc
并将其作为一个组捕获。(?:abc)
:匹配abc
但不捕获(非捕获组)。(?P<name>abc)
:匹配abc
并将其捕获为命名组name
。
|
:表示逻辑或。例如,a|b
匹配a
或b
。
\d
:匹配任何数字,等价于[0-9]
。\D
:匹配任何非数字字符。\w
:匹配任何字母数字字符(包括下划线),等价于[a-zA-Z0-9_]
。\W
:匹配任何非字母数字字符。\s
:匹配任何空白字符(空格、制表符、换行符等)。\S
:匹配任何非空白字符。
在正则表达式中,_
(下划线)是一个普通字符,不需要转义。它可以直接用作匹配字符。例如,正则表达式 \w
会匹配字母、数字和下划线,因此 _
是被包含在内的。
正则表达式的基本语法提供了强大的文本匹配能力。理解这些基本构造可以帮助你编写有效的正则表达式来处理各种文本处理任务。
- 在当前目录下匹配'depth_env'开头,'_cam2_frame1.jpg'结尾,中间是数字
- 注意find查找的结果,会以'./'开头
find . -type f -regex '\./depth_env[0-9]+_cam2_frame1.jpg'
- cam-0001-\d\d\d\d.png
cp $(ls | grep 'cam-0001-[0-9]{4}.png') rgb/
- find /ls 不支持{n}匹配,也不支持\d
- 可以使用反引号(`)或 $() 语法来将 find 命令的输出作为 cp 命令的参数。
cp $(find . -name "*.txt") /path/to/destination/
find 命令的 -exec 选项允许你对找到的每个文件执行一个命令。你可以在 -exec 后面直接使用 cp 命令。
find . -name "*.txt" -exec cp {} /path/to/destination/
- 可以使用 xargs 命令将 find 的输出传递给 cp 命令。xargs 会将输入转换为命令行参数。
find . -name "*.txt" | xargs -I {} cp {} /path/to/destination/
- 查找后复制
cp $(find . -type f -regex '\./depth_env[0-9]+_cam2_frame1.jpg') test/