1、grep 命令
grep命令主要用于查询文件中的字符串或者应用于正则表达式中,基本语法格式:
代码语言:javascript复制gerp [参数选项] [文件]
常用参数
- -i:忽略大小写进行匹配。
- -v:反向查找,只打印不匹配的行。
- -n:显示匹配行的行号。
- -r:递归查找子目录中的文件。
- -l:只打印匹配的文件名。
- -c:只打印匹配的行数。
举例说明
- 在文件 testfile.txt 中查找字符串 “linux”,并打印匹配的行
grep linux testfile.txt
- 在标准输入中查找字符串 “linux”,并只打印匹配的行数
echo "hello linux! very good!" | grep -c linux
- 在当前目录中,查找后缀有info字样的文件中包含 linux字符串的文件,并打印出该字符串的行
grep linux *info
- 以递归的方式在/home/sk/test/目录下查找文件中带有linux字符串的文件,并打印字符串所在行的内容
grep -r linux /homa/sk/test/
2、rgrep 命令
rgrep命令等同于 grep -r 命令,主要是用于递归查找文件里符合条件的字符串,基本语法格式如下:
代码语言:javascript复制rgerp [参数选项] [文件]
举例说明
- 在当前目录下查找句子中包含"linux"字符串的文件
rgrep linux *
3、sed 命令
sed命令主要是利用脚本来处理文本文件
常用参数
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
- d :删除,因为是删除啊,所以 d 后面通常不接任何东东
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
- s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!
- -e:以选项中指定的script来处理输入的文本文件
- -n:仅显示script处理后的结果
举例说明
手动创建一个test.txt文件,文件内容如下
hello world java script python linux shell script
- 在test.txt文件的第三行后面插入一行“this is c ”
sed -e 3athis is c test.txt
使用如上sed命令后,输出结果如下:
hello world java script python this is c linux shell script
- 搜索 test.txt文件中有 script 关键字的行
nl test.txt | sed -n '/script/p'
2 java script
6 shell script
- 在test.txt文件中找到 script 对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把 pt 替换为 ss
nl test.txt | sed -n '/script/{s/pt/ss/;p;q}'
2 java scriss
6 shell scriss
# 这里的q是退出命令的意思
- 数据的查找与替换,sed的查找与替换命令与vi类似,格式如下:
sed 's/要被取代的字串/新的字串/g'
# s是查找与替换意思
# g标识符代表全局替换意思
代码语言:javascript复制sed -e 's/scriss/script/' test.txt # 将test文件中“scriss”字符替换为“script”
- 在test.txt文件的最后一行加入“this is linux test !”
sed -i '$a this is linux test !' test.txt
> hello world
> java script
> python
> this is c
> linux
> shell script
> this is linux test !
4、tr 命令
tr命令主要是用于转换或删除文件中的字符
常用参数
- -d:删除指令字符
- [:digit:] :所有数字
- [:punct:] :所有标点字符
- [:lower:] :所有小写字母
- [:upper:] :所有大写字母
举例说明
- 将test.txt文件中的小写字母全部转换成大写字母
cat test.txt | tr a-z A-Z
cat test.txt | tr [:lower:] [:upper:]
5、expr 命令
expr命令是一个计算器命令,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串,基本语法:
代码语言:javascript复制expr [表达式]
表达式的说明
- 用空格隔开每个项;
- 用反斜杠 放在 shell 特定的字符前面;
- 对包含空格和其他特殊字符的字符串要用引号括起来
举例说明
- 计算一个字符串“this is linux command”
expr length "this is linux command"
- 获取第一个字符数字串的索引位置
expr index "linux" i
2
- 整数的运算过程
expr 2 2
4
expr 60 / 2 / 2
15
expr 20 * 2 # (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
40
6、wc 命令
wc命令是一个用于计算数字的命令,可以用来计算文件的个数行数等
常用参数说明
- -c:只显示Bytes数。
- -l:显示行数。
- -w:只显示字数
举例说明
- 直接用wc 文件,统计的是文件的行数、单词数、字节数
wc test.txt
# 6 45 123 text.txt # test.txt文件的行数为6、单词数45、字节数123
- 配合find命令查询文件的个数
find . -type f -name "*.log" | wc -l
# 在当前目录下查询以.log结尾的文件个数
7、let 命令
let命令在linux系统中作为一个计算工具,用于执行一个或多个表达式
举例说明
代码语言:javascript复制let a = 2 * 3
let b = 40 / 4
echo $a $b
# 输出结果:6 10
结束语
以上总结的命令,主要是针对Linux文档编辑部分日常常用的一些命令,并列举了每个命令高频使用的参数和应用场景,如有其他疑问请大家评论留言指出,欢迎大家指正。最后,希望这篇博文能给大家提供些许帮助,感谢大家的支持!