Skip to content

Latest commit

 

History

History
162 lines (92 loc) · 3.96 KB

linux_cmd.md

File metadata and controls

162 lines (92 loc) · 3.96 KB

把文件file转为todos

printf "%s\n" *>> read.md

终端编辑器(vi,当nano不可用)

  • 删除整行——dd/D
  • 跳转到最后一行——G
  • 跳转到第一行——gg
  • 跳转到下一行——k
  • 跳转到上一行——o

软件包(snap+apt)

查看软件版本

sudo snap info okular

环境变量查看+修改

$PATH

export PATH=$PATH:/directory

regular strings

link:https://www.runoob.com/regexp/regexp-syntax.html

grammar

正则表达式的基本语法包括多种元素和构造,用于匹配字符串中的特定模式。以下是一些常见的基本语法元素:

1. 字符类

  • .:匹配任意单个字符(除了换行符)。
  • [abc]:匹配字符集中的任意一个字符(例如,[abc] 匹配 abc)。
  • [^abc]:匹配不在字符集中的任意一个字符(例如,[^abc] 匹配除了 abc 之外的字符)。
  • [a-z]:匹配范围内的任意字符(例如,[a-z] 匹配小写字母)。

2. 量词

  • *:匹配前面的元素零次或多次。
  • +:匹配前面的元素一次或多次。
  • ?:匹配前面的元素零次或一次。
  • {n}:匹配前面的元素恰好 n 次。
  • {n,}:匹配前面的元素至少 n 次。
  • {n,m}:匹配前面的元素至少 n 次,但不超过 m 次。

3. 边界匹配

  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • \b:匹配单词边界(例如,空格、标点符号等)。
  • \B:匹配非单词边界。

4. 转义字符

  • \:用于转义特殊字符,使其失去特殊含义。例如,\. 匹配字面上的点字符。

5. 分组和捕获

  • (abc):匹配 abc 并将其作为一个组捕获。
  • (?:abc):匹配 abc 但不捕获(非捕获组)。
  • (?P<name>abc):匹配 abc 并将其捕获为命名组 name

6. 逻辑或

  • |:表示逻辑或。例如,a|b 匹配 ab

7. 特殊字符

  • \d:匹配任何数字,等价于 [0-9]
  • \D:匹配任何非数字字符。
  • \w:匹配任何字母数字字符(包括下划线),等价于 [a-zA-Z0-9_]
  • \W:匹配任何非字母数字字符。
  • \s:匹配任何空白字符(空格、制表符、换行符等)。
  • \S:匹配任何非空白字符。

_字符需要转义吗?

在正则表达式中,_(下划线)是一个普通字符,不需要转义。它可以直接用作匹配字符。例如,正则表达式 \w 会匹配字母、数字和下划线,因此 _ 是被包含在内的。

总结

正则表达式的基本语法提供了强大的文本匹配能力。理解这些基本构造可以帮助你编写有效的正则表达式来处理各种文本处理任务。

example

  1. 在当前目录下匹配'depth_env'开头,'_cam2_frame1.jpg'结尾,中间是数字
  • 注意find查找的结果,会以'./'开头
find . -type f -regex   '\./depth_env[0-9]+_cam2_frame1.jpg'
  1. cam-0001-\d\d\d\d.png
cp $(ls | grep 'cam-0001-[0-9]{4}.png')  rgb/
  • find /ls 不支持{n}匹配,也不支持\d

命令行输出作为另一命令的输入

1. 命令替换(Best!)

  • 可以使用反引号(`)或 $() 语法来将 find 命令的输出作为 cp 命令的参数。
cp $(find . -name "*.txt") /path/to/destination/

2. --exec

find 命令的 -exec 选项允许你对找到的每个文件执行一个命令。你可以在 -exec 后面直接使用 cp 命令。

find . -name "*.txt" -exec cp {} /path/to/destination/ 

3. 管道和xargs

  • 可以使用 xargs 命令将 find 的输出传递给 cp 命令。xargs 会将输入转换为命令行参数。
find . -name "*.txt" | xargs -I {} cp {} /path/to/destination/

example

  • 查找后复制
cp $(find . -type f -regex   '\./depth_env[0-9]+_cam2_frame1.jpg')  test/