实用命令
本部分内容为日常工作实用命令,会长期更新。
1. 去掉注释行和空行
1 grep -Ev "^#|^$" file
有时候需要查看某个配置文件的内容,直接查看往往包含很多默认的注释信息,信息混乱翻页麻烦,使用上述命令可去掉行首为#和空行,非#号开始的注释,可自行修改,一般情况够用了。
-E 意思为扩展正则表达式,-v为方向匹配,"^#|^$" 意思匹配#开头或者空行
示例:
1 ➜ grep -Ev "^#|^$" /etc/dnsmasq.conf
2 resolv-file=/etc/resolv.dnsmasq
3 listen-address=127.0.0.1
4 no-hosts
5 hostsdir=/etc/hosts.dnsmasq
6 cache-size=1024
2. 一次性创建多个文件或者目录
1 touch {part1,part2,part3}
mkdir 类似,就是用大括号把东西括起来,在逗号分割待创建的内容,如果是数字或者字母还有变种
请看示例:
1 ➜ test touch {one,two,three,four,five}.py
2 ➜ test ls
3 example_dir five.py four.py one.py three.py two.py
4 ➜ test touch {tony,mike,eric,json,joe}
5 ➜ test ls
6 eric example_dir five.py four.py joe json mike one.py three.py tony two.py
7 ➜ test touch {1..5}.txt
8 ➜ test ls -al *.txt
9 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 1.txt
10 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 2.txt
11 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 3.txt
12 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 4.txt
13 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 5.txt
14 ➜ test touch {a..f}.md
15 ➜ test ls -al *.md
16 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 a.md
17 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 b.md
18 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 c.md
19 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 d.md
20 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 e.md
21 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 f.md
3. 查找匹配某种文件后,进一步处理
这些操作当然可以用find + xarg完成,但是fd命令真的很好用,速度非常快。所以我推荐:
1 fd -e zip -x your_next_command
上面的意思为匹配zip结尾,-x 后接你要的命令
示例,先创建10个txt文件,再追加.md结尾,接着把文件复制到example_dir目录
Here, {} is a placeholder for the search result. {.} is the same, without the file extension. {}表示每个匹配的结果,{.}表示每个不带文件后缀名的文件,有点怪,可以看看fd的文档解释。
1 ➜ test touch {1..10}.txt
2 ➜ test fd . -e txt
3 1.txt
4 10.txt
5 2.txt
6 3.txt
7 4.txt
8 5.txt
9 6.txt
10 7.txt
11 8.txt
12 9.txt
13 ➜ test fd . -e txt -x md5sum
14 d41d8cd98f00b204e9800998ecf8427e ./4.txt
15 d41d8cd98f00b204e9800998ecf8427e ./2.txt
16 d41d8cd98f00b204e9800998ecf8427e ./3.txt
17 d41d8cd98f00b204e9800998ecf8427e ./10.txt
18 d41d8cd98f00b204e9800998ecf8427e ./6.txt
19 d41d8cd98f00b204e9800998ecf8427e ./9.txt
20 d41d8cd98f00b204e9800998ecf8427e ./7.txt
21 d41d8cd98f00b204e9800998ecf8427e ./8.txt
22 d41d8cd98f00b204e9800998ecf8427e ./1.txt
23 d41d8cd98f00b204e9800998ecf8427e ./5.txt
24 ➜ test fd . -e txt -x mv {} {}.md
25 ➜ test ls -al
26 total 68
27 drwxrwxr-x 2 mephisto mephisto 12 Nov 17 14:36 .
28 drwxrwxrwt 35 root root 49 Nov 17 14:33 ..
29 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 10.txt.md
30 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 1.txt.md
31 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 2.txt.md
32 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 3.txt.md
33 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 4.txt.md
34 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 5.txt.md
35 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 6.txt.md
36 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 7.txt.md
37 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 8.txt.md
38 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:34 9.txt.md
39 ➜ test mkdir example_dir
40 ➜ test fd . -e md -x cp {} example_dir
41 ➜ test ls -al example_dir
42 total 28
43 drwxrwxr-x 2 mephisto mephisto 12 Nov 17 14:37 .
44 drwxrwxr-x 3 mephisto mephisto 13 Nov 17 14:37 ..
45 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 10.txt.md
46 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 1.txt.md
47 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 2.txt.md
48 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 3.txt.md
49 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 4.txt.md
50 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 5.txt.md
51 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 6.txt.md
52 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 7.txt.md
53 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 8.txt.md
54 -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:37 9.txt.md
55 ➜ test ls
56 10.txt.md 1.txt.md 2.txt.md 3.txt.md 4.txt.md 5.txt.md 6.txt.md 7.txt.md 8.txt.md 9.txt.md example_dir
4. 排序去重
1 sort -u file
没有那么多操作很简单 -u 去重,-o 结果输出到另外一个文件
直接看示例:
1 ➜ test cat haha.txt
2 hello
3 192.168.1.8
4 192.168.1.9
5 192.168.1.9
6 192.168.1.9
7 192.168.1.9
8 192.168.1.9
9 192.168.1.5
10 192.168.1.1
11 192.168.1.3
12 192.168.1.1
13 192.168.1.22
14 world
15 ➜ test sort -u haha.txt
16 192.168.1.1
17 192.168.1.22
18 192.168.1.3
19 192.168.1.5
20 192.168.1.8
21 192.168.1.9
22 hello
23 world
24 ➜ test sort -u haha.txt -o result.txt
25 ➜ test cat result.txt
26 192.168.1.1
27 192.168.1.22
28 192.168.1.3
29 192.168.1.5
30 192.168.1.8
31 192.168.1.9
32 hello
33 world
34 ➜ test
未完待续...
最后修改于: Monday, August 28, 2023
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。