Linux基本命令 和 Regex 正则表达式
2021/10/15 7:14:27
本文主要是介绍Linux基本命令 和 Regex 正则表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Linux基本命令 和 Regex 正则表达式
Regex
基本语法
常用匹配规则
[aeiouAEIOU] # 从中随机选择一个 [0-9]{4} # 从中选择4个 .* # 匹配任意字符 \w # 匹配单词 \d # 匹配数字 ^abc # 以abc为开始 ^(abc) # 以abc为开头 [^abc] # 不包含abc abc$ # 以abc为结尾 '|' # 匹配内容里|表示或者 + # 至少匹配1个 ? # 至少匹配0个 () # 同传统意义上的括号
参考链接
- 在线测试及用例参考: http://c.runoob.com/front-end/854
shell
1. grep
使用说明:
grep 命令用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
2. cut
使用说明:
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
参数:
- -d: 自定义分隔符,默认为制表符。
- -f: 与-d一起使用,指定显示哪个区域。
- -c: 以字符为单位进行分割。
- -b: 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -n: 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除
实例:
test3:
``` cut -d '|' -f 2-3 | sort| uniq | cut -d ' ' -f 2 | cut -d ' ' -f 3 | sort | uniq -c | sort | tr -s ' '| cut -d ' ' -f 3 | tail -n 1 ```
3. uniq
使用说明:
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。sort | uniq
先排序再删除,因为它只删除相邻的重复的列。
参数:
- -c: 在每列旁边显示该行重复出现的次数。
- -d或--repeated: 仅显示重复出现的行列。
- -u或--unique 仅显示出一次的行列。
- -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
- -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
- -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
实例:
- test3:
cut -d '|' -f 2-3 | sort| uniq | cut -d ' ' -f 2 | cut -d ' ' -f 3 | sort | uniq -c | sort | tr -s ' '| cut -d ' ' -f 3 | tail -n 1
4. sort
sort用法(单独使用为按字母顺序排序)
-n或-nr # 按数字大小进行排序 -r # 反向排序 -u # 排序结果去掉重复项
与unqic一起使用
sort aim.txt | unqic -c | sort -n # unic去重,-c显示重复行数量
5. diff
比较两个文件是否相同
diff file1 file2 >dev/null 2>&1 # 比较结果不输出到屏幕 if [ "$?" == "0" ];then # $?是对比结果返回值 echo "the file or dir is same!" else echo "the file or dir is different!" fi
6. basename
name=`basename /tmp/test/file.txt` # 输出为file.txt name1=`basename /tmp/test/file.txt .txt` # 输出为file
7. convert
convert "a.jpg" "a.png" # 将jpg图片转换为png
8. read
read address #读取外界输入并将其值赋给address echo $address
9. cp
cp file1 file2 # 将file1复制成file2 cp -p # 保留源文件各种信息及属性
10. mv
mv aaa bbb # 将文件名aaa改为bbb mv aaa info # 将文件移动到info/文件夹
11. display
display shell.png # 打开一张图片
12. wc
wc < aim.txt -l # 只显示行数 -w # 只显示字数
13. tail head
tail -1 #显示最后一行
14. tr
tr 命令用于转换或删除文件中的字符。
tr指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
tr [OPTION] SET1 [SET2] -s # 替换重复的字符 用SET1指定的字符来替换对应的重复字符 -d # 删除字符 删除SET1中指定的所有字符,不转换(delete characters in SET1, do not translate) -t # 字符替换 将SET1中字符用SET2对应位置的字符进行替换,一般缺省为-t -c # 字符补集替换 用SET2替换SET1中没有包含的字符
例子:
tr '0123456789' '<<<<<5>>>>' # 将0-9转换按规则为后面
15. sed
sed 流编辑器
不必被sed复杂的概念所迷惑,sed就是用来 把一个字符串中的某部分更改为其他字符的一种工具
#sed s///g # 此为主要用法,s/1/2/g意为将所有匹配到的1换为2 # 例子(匹配里最好不要用+,可以用*) # 输入123abc123 cat line.txt | sed 's/[0-9]*//g' #得到abc123 cat line.txt | sed 's/[a-z]//g' #得到123123 cat line.txt | sed 's/[0-9]*$//g' #得到123abc cat line.txt | sed 's/[0-9]*[a-z]//g' #得到123(删123abc) cat line.txt | sed 's/[a-z][0-9]*//g' #得到123(删abc123)
这篇关于Linux基本命令 和 Regex 正则表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法