grep命令及相关的增删找查命令的用法

grep 命令,用于在文件中搜索指定的模式

常用选项:
  • -m:匹配指定次数后停止。
  • -v:显示不被模式匹配到的行。
  • -i:忽略大小写。
  • -n:显示匹配的行号。
  • -c:统计匹配的行数。
  • -o:仅显示匹配到的字符串。
  • -q:静默模式,不输出任何信息。
  • -A:显示匹配行后的指定行数。
  • -B:显示匹配行前的指定行数。
  • -C:显示匹配行前后的指定行数。
  • -e:实现多个选项间的逻辑或关系。
  • -w:匹配整个单词。
  • -E:使用扩展正则表达式。
  • -F:不支持正则表达式。
  • -f:根据模式文件处理两个文件相同内容。
  • -r:递归目录,但不处理软链接。
  • -R:递归目录,且处理软链接。
  1. 基本用法

    grep 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行。

  2. 匹配指定次数

    grep -m 1 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行,只取第一个匹配。

  3. 取反匹配

    grep -v '^[[:space:]]*#' /etc/fstab
    

    显示 /etc/fstab 文件中不被 ^[[:space:]]*# 匹配到的行。

  4. 忽略大小写

    grep -i 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 rootRoot 的行。

  5. 显示行号

    grep -n 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行,并显示行号。

  6. 统计匹配行数

    grep -c 'root' /etc/passwd
    

    统计 /etc/passwd 文件中包含 root 的行数。

  7. 仅显示匹配字符串

    grep -o 'root' /etc/passwd
    

    仅显示 /etc/passwd 文件中匹配到的 root 字符串。

  8. 静默模式

    grep -q 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行,但不输出任何信息。

  9. 显示匹配行后的3行

    grep -A 3 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行,并显示其后3行。

  10. 显示匹配行前的3行

    grep -B 3 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含 root 的行,并显示其前3行。

  11. 多个选项间的逻辑or关系

    grep -e 'root' -e 'bash' /etc/passwd
    

    /etc/pass堡 文件中查找包含 rootbash 的行。

  12. 匹配整个单词

    grep -w 'root' /etc/passwd
    

    /etc/passwd 文件中查找包含整个单词 root 的行。

  13. 使用扩展正则表达式

    grep -E 'root|bash' /etc/passwd
    

    /etc/passwd 文件中查找包含 rootbash 的行。

  14. 根据模式文件处理两个文件相同内容

    grep -f 123.txt 456.txt
    

    匹配 123.txt456.txt 文件中内容相同的部分。

  15. 递归目录,但不处理软链接

    grep -r 'root' /opt
    

    递归过滤 /opt 目录中的文件,但不处理软链接。

  16. 递归目录,且处理软链接

    grep -R 'root' /opt
    

    递归过滤 /opt 目录中的文件,并处理软链接。

sort 命令,用于对文件内容进行排序

常用选项:
  • -f:忽略大小写。
  • -b:忽略每行前面的空格。
  • -n:按照数字进行排序。
  • -r:反向排序。
  • -u:去重。
  • -t:指定字段分隔符。
  • -k:指定排序字段。
  • -o:将排序后的结果转存至指定文件。
  1. 基本用法

    cat file | sort
    

    对文件内容进行排序。

  2. 忽略大小写

    cat file | sort -f
    

    忽略大小写进行排序。

  3. 按数字排序

    cat file | sort -n
    

    按数字进行排序。

  4. 反向排序

    cat file | sort -r
    

    反向排序。

  5. 去重

    cat file | sort -u
    

    去重。

  6. 指定字段分隔符

    cat file | sort -t ':'
    

    指定字段分隔符为 :

  7. 指定排序字段

    cat file | sort -k 2
    

    指定按第二个字段排序。

  8. 输出到文件

    cat file | sort -o sorted_file
    

    将排序后的结果输出到 sorted_file

uniq 命令,用于报告或忽略文件中连续的重复行

常用选项:
  • -c:统计连续重复的行的次数。
  • -u:显示仅出现一次的行。
  • -d:仅显示重复出现的行。
  1. 基本用法

    cat file | uniq
    

    报告或忽略文件中连续的重复行。

  2. 统计重复次数

    cat file | uniq -c
    

    统计连续重复的行的次数。

  3. 显示仅出现一次的行

    cat file | uniq -u
    

    显示仅出现一次的行。

  4. 显示连续重复的行

    cat file | uniq -d
    

    显示连续重复的行。

tr 命令示例,常用于对字符进行替换、压缩和删除。

常用选项:
  • -c:保留字符集1的字符,其他字符用字符集2替换。
  • -d:删除所有属于字符集1的字符。
  • -s:将重复出现的字符串压缩为一个字符串。
  • -t:字符集2替换字符集1。
  1. 替换字符

    echo "192.168.233.22" | tr '.' ' '
    

    . 替换为空格。

  2. 大写转小写

    echo "ABC" | tr "A-Z" "a-z"
    

    将大写字母替换为小写字母。

  3. 保留指定字符

    echo "abc" | tr -c 'ab' 'a'
    

    保留 ab,替换其他字符为 a

  4. 删除指定字符

    echo "abc" | tr -d 'ab'
    

    删除 ab,打印剩余字符。

  5. 压缩空行

    cat file | tr -s '\n'
    

    压缩空行为一个。

  6. 替换分隔符

    echo $PATH | tr -s ":" "\n"
    

    : 替换为换行。

cut 命令,于对字段进行截取和剪裁

常用选项:
  • -d:指定分隔符。
  • -f:按字段进行截取。
  • -b:以字节为单位进行截取。
  • -c:以字符为单位进行截取。
  • --complement:排除所指定的字段。
  • --output-delimiter:更改输出内容的分隔符。
  1. 基本用法

    cut -d ':' -f 1 /etc/passwd
    

    : 为分隔符,截取第一个字段。

  2. 按字节截取

    cut -b 1-10 file
    

    以字节为单位截取前10个字节。

  3. 按字符截取

    cut -c 1-10 file
    

    以字符为单位截取前10个字符。

  4. 排除指定字段

    cut -d ':' --complement -f 2 /etc/passwd
    

    : 为分隔符,排除第二个字段。

  5. 更改输出分隔符

    cut -d ':' -f 1-5 --output-delimiter='@' /etc/passwd
    

    将分隔符转换为 @

split 命令,用于将大文件拆分为若干小文件

常用选项:
  • -l:指定行数。
  • -b:指定文件的大小。
  1. 按行数拆分

    split -l 20 test2.txt sc
    

    test2.txt 按每20行拆分为多个文件,前缀为 sc

  2. 按文件大小拆分

    split -b 2m httpd-2.4.29.tar.bz2 sc
    

    httpd-2.4.29.tar.bz2 按每2MB拆分为多个文件,前缀为 sc

paste 命令,于按照字段进行文件的合并

常用选项:
  • -d:指定文件的分隔符。
  • -s:将列和行的内容进行互相交换。
  1. 基本用法

    paste a b
    

    将文件 ab 按列合并。

  2. 指定分隔符

    paste -d '|' a b
    

    将文件 ab 按列合并,并使用 | 作为分隔符。

  3. 交换列和行

    paste -s a b
    

    将文件 ab 的列和行内容互相交换。

eval 命令,变量扫描器

eval 命令适用于那些一次扫描无法实现功能的变量,会对变量进行两次扫描。

a=100
b=a

echo "普通echo输出的变量b的值为:" \$$b
eval echo "经过eval扫描输出变量b的值为:" \$$b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值