ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux基本命令 和 Regex 正则表达式

2021-10-14 20:33:11  阅读:171  来源: 互联网

标签:Regex sort cut abc 字符 正则表达式 sed Linux txt


Linux基本命令 和 Regex 正则表达式

Regex

基本语法

常用匹配规则

[aeiouAEIOU]			# 从中随机选择一个
[0-9]{4}		        # 从中选择4个
.*				# 匹配任意字符
\w				# 匹配单词
\d				# 匹配数字
^abc				# 以abc为开始
^(abc)				# 以abc为开头
[^abc]				# 不包含abc
abc$				# 以abc为结尾
'|'				# 匹配内容里|表示或者
+				# 至少匹配1个
?			        # 至少匹配0个
()				# 同传统意义上的括号

参考链接

  1. 在线测试及用例参考: 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=<字符位置> 指定要比较的字符。
实例:
  1. 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)

标签:Regex,sort,cut,abc,字符,正则表达式,sed,Linux,txt
来源: https://www.cnblogs.com/HsinTsao/p/15408331.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有