Linux命令篇(二):文档编辑部分

2024-06-04 12:27:15 浏览数 (2)

1、grep 命令

grep命令主要用于查询文件中的字符串或者应用于正则表达式中,基本语法格式:

代码语言:javascript复制
gerp [参数选项] [文件]

常用参数

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

举例说明

  1. 在文件 testfile.txt 中查找字符串 “linux”,并打印匹配的行
代码语言:javascript复制
grep linux testfile.txt
  1. 在标准输入中查找字符串 “linux”,并只打印匹配的行数
代码语言:javascript复制
echo "hello linux! very good!" | grep -c linux 
  1. 在当前目录中,查找后缀有info字样的文件中包含 linux字符串的文件,并打印出该字符串的行
代码语言:javascript复制
grep linux *info 
  1. 以递归的方式在/home/sk/test/目录下查找文件中带有linux字符串的文件,并打印字符串所在行的内容
代码语言:javascript复制
grep -r linux /homa/sk/test/

2、rgrep 命令

rgrep命令等同于 grep -r 命令,主要是用于递归查找文件里符合条件的字符串,基本语法格式如下:

代码语言:javascript复制
rgerp [参数选项] [文件]

举例说明

  1. 在当前目录下查找句子中包含"linux"字符串的文件
代码语言:javascript复制
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

  1. 在test.txt文件的第三行后面插入一行“this is c ”
代码语言:javascript复制
sed -e 3athis is c   test.txt

使用如上sed命令后,输出结果如下:

hello world java script python this is c linux shell script

  1. 搜索 test.txt文件中有 script 关键字的行
代码语言:javascript复制
nl test.txt | sed -n '/script/p'
2   java script 
6   shell script 
  1. 在test.txt文件中找到 script 对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把 pt 替换为 ss
代码语言:javascript复制
nl test.txt | sed -n '/script/{s/pt/ss/;p;q}'
2   java scriss
6   shell scriss
# 这里的q是退出命令的意思
  1. 数据的查找与替换,sed的查找与替换命令与vi类似,格式如下:
代码语言:javascript复制
sed 's/要被取代的字串/新的字串/g'
# s是查找与替换意思  
# g标识符代表全局替换意思
代码语言:javascript复制
sed -e 's/scriss/script/' test.txt  # 将test文件中“scriss”字符替换为“script”
  1. 在test.txt文件的最后一行加入“this is linux test !”
代码语言:javascript复制
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:] :所有大写字母

举例说明

  1. 将test.txt文件中的小写字母全部转换成大写字母
代码语言:javascript复制
cat test.txt | tr a-z A-Z
cat test.txt | tr  [:lower:] [:upper:] 

5、expr 命令

expr命令是一个计算器命令,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串,基本语法:

代码语言:javascript复制
expr [表达式]

表达式的说明

  • 用空格隔开每个项;
  • 用反斜杠 放在 shell 特定的字符前面;
  • 对包含空格和其他特殊字符的字符串要用引号括起来

举例说明

  1. 计算一个字符串“this is linux command”
代码语言:javascript复制
expr length "this is linux command"
  1. 获取第一个字符数字串的索引位置
代码语言:javascript复制
expr index "linux" i
2
  1. 整数的运算过程
代码语言:javascript复制
expr 2   2
4

expr 60 / 2 / 2 
15

expr 20 * 2  # (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
40 

6、wc 命令

wc命令是一个用于计算数字的命令,可以用来计算文件的个数行数等

常用参数说明

  • -c:只显示Bytes数。
  • -l:显示行数。
  • -w:只显示字数

举例说明

  1. 直接用wc 文件,统计的是文件的行数、单词数、字节数
代码语言:javascript复制
wc test.txt 
# 6 45 123 text.txt # test.txt文件的行数为6、单词数45、字节数123
  1. 配合find命令查询文件的个数
代码语言:javascript复制
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文档编辑部分日常常用的一些命令,并列举了每个命令高频使用的参数和应用场景,如有其他疑问请大家评论留言指出,欢迎大家指正。最后,希望这篇博文能给大家提供些许帮助,感谢大家的支持!

0 人点赞