Linux的命令,用suffix= "--help"就知道用法了
ls *.zip | xargs -P $(nproc) -I{} 7z x {} -ywatch -n 2 -d "free -h"- top 查看那CPU
- 系统管理小能手
cp /etc/skel/.bashrc ~/.bashrcsudo snap refresh --holdprintf "%s\n" *>> read.md
- 删除整行——dd/D
- 跳转到最后一行——G
- 跳转到第一行——gg
- 跳转到下一行——k
- 跳转到上一行——o
sudo snap info okularexport PATH=$PATH:/directory正则表达式的基本语法包括多种元素和构造,用于匹配字符串中的特定模式。以下是一些常见的基本语法元素:
.:匹配任意单个字符(除了换行符)。[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 会匹配字母、数字和下划线,因此 _ 是被包含在内的。
正则表达式的基本语法提供了强大的文本匹配能力。理解这些基本构造可以帮助你编写有效的正则表达式来处理各种文本处理任务。
| 层级 | 举例 |
|---|---|
| 操作系统 | Unix / Linux |
| Shell | bash / zsh / sh |
| 命令 | ls / cp / rm |
| 程序 | gcc / python |
| 通配符 | 含义 |
|---|---|
* |
匹配任意长度字符串(不含 /) |
? |
匹配任意 单个字符 |
[] |
匹配字符集合,如 [a-z] |
{} |
花括号展开,如 {a,b} |
~ |
用户家目录 |
** |
递归匹配(bash 4+,需开启) |
-
在当前目录下匹配'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
- 递归删除.pt结尾但不以000.pt结尾的文件
find . -type f -name "*.pt" ! -name "*000.pt" -delete- 可以使用反引号(`)或 $() 语法来将 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/
- 按正则表达式
find . -iregex "*.txt"- 按文件名
find . -name "*txt"- 按文件+路径名
find -wholename "/path/to/file"- 具体见
find --helpwget https://example.com/file.zip # 下载单个文件
wget -O renamed_file.zip https://example.com/file.zip # 指定保存文件名
wget -c https://example.com/bigfile.iso # 断点续传
wget -r --no-parent https://example.com/path/ # 递归下载(不跨越父目录)du -a -h -d 1-
-a= output hidden file
-
-h=humankind, -d=recursive depth
- 故障重启
ibus restart
ibus-daemon -drxsudo umount /media/sky/SSD
# 选项A:使用默认权限(推荐)
sudo mount -o rw,uid=1000,gid=1000,iocharset=utf8 /dev/sda1 /media/sky/SSD
# 选项B:给予所有用户完全权限(最宽松)
sudo mount -o rw,uid=1000,gid=1000,umask=000,iocharset=utf8 /dev/sda1 /media/sky/SSDAWK 是一种强大的文本处理工具,适合用于数据的格式化、分析和报告。它特别适合处理结构化文本,如 CSV 文件和日志文件。在 Bash 中,使用 AWK 可以简化复杂的文本处理任务。
AWK 的通用命令格式如下:
awk 'pattern { action }' filename- pattern:匹配输入数据的模式,省略时对所有行操作。
- action:在匹配到模式的行上执行的动作,如果省略,默认是打印整行。
awk '{print}' file.txtawk '{print $1, $2}' file.txtAWK 默认使用空格作为字段分隔符,可以使用 -F 指定其他分隔符:
awk -F',' '{print $1, $2}' file.txtawk '{print NR, $0}' file.txt此命令将打印行号和整行内容。
awk '{sum += $1} END {print sum}' file.txtawk '{printf "%-10s %-10s\n", $1, $2}' file.txtAWK 允许使用条件判断来选择性地输出特定行。
打印第一列大于2的行:
awk '$1 > 2' file.txtAWK 提供一些内置变量,例如:
NR:当前行号。NF:当前行的字段数。$0:完整的当前行。
示例:
awk '{print NR, NF, $0}' file.txt对于较长的 AWK 程序,您可以将代码写入一个文件,并使用 -f 选项加载:
awk -f script.awk file.txtAWK 是一个极为灵活的工具,适用于多种文本处理场景。无论是简单的字段提取,还是复杂的数据分析,AWK 都能够高效处理。希望这些示例能帮助你在 Bash 中有效地使用 AWK!如果你有具体的应用场景或者问题,欢迎继续询问!
(legged-rsl) chenlei@118:~/Project/DeepSDF$ echo 'one two three' | xargs -n 1 -d " " -I {} echo "Item: {}"
Item: one
Item: two
Item: three- -d " "按空格划分;
- -I 按“行”处理, 不再按空格拆分
- -n 每次只传x个参数