博客
关于我
linux文件操作命令--转
阅读量:796 次
发布时间:2023-03-28

本文共 2525 字,大约阅读时间需要 8 分钟。

Linux 文本操作命令

处理文件时,了解文件有多少行确实有些麻烦,尤其是当你需要处理大量文件时。这段文字纪念我在科研过程中的那些“傻逼”时光,也是为了记录一些实用的命令技巧。

Linux 命令行操作

在 Linux 环境下,文本操作命令是处理文件的核心工具。以下是一些常用的命令:

  • cat:用于查看文件内容,可以用 -n 参数显示每行编号。

    • -b-n 的作用类似,但 -b 会忽略空白行。
  • headtail

    • head file:显示文件的前 10 行。
    • tail file:显示文件的后 10 行。
    • -n 参数可以显示指定行数:
      • tail -n 20 file:显示文件后 20 行。
      • tail -f /var/log/messages:实时显示系统日志。
  • moreless

    • more file:分屏显示文件内容。
    • less file:与 more 类似,但支持上下翻页。
  • diff:比较两个文件的差异。

    • -b:忽略空格和空白行的差异。
    • -l:忽略大小写差异。
    • 示例:diff file1 file2diff -B file1 file2
  • uniq:去除重复的行。

    • uniq file:去除相邻重复的行。
  • wc:统计文本内容。

    • -l:统计行数。
    • -w:统计单词数。
    • -c:统计字符数。
    • 示例:wc -l /etc/passwd:统计 /etc/passwd 文件的行数。

  • 读取文件某一行或几行

    如果你需要读取特定文件的某一行或几行,可以使用 sed 命令。

    • 查看文件 song.txt 的第 190 行到第 196 行:
      sed -n '190,196p' song.txt
    • 查看某一行:
      sed -n '190,1p' song.txt
    • 读取自第 a 行到第 b 行的数据:
      sed -n 'a,bp' song.txt

      如果 a > b,结果将只显示第 a 行。


    Find 命令详解

    Find 命令用于搜索文件系统中的文件,支持多种选项和操作。

    命令格式

    find pathname -options 【-print -exec -ok】  ``  - **`pathname`**:指定要搜索的目录路径。  - **常用选项**:    - `-name`:按文件名搜索。    - `-type`:按文件类型搜索:      - `f`:普通文件。      - `d`:目录。      - `l`:符号链接文件。    - `-mtime`:按文件修改时间排序。      - `-n +n`:文件修改时间在 n 天以内。      - `-n +n`:文件修改时间在 n 天以前。    - `-prune`:排除当前目录中的文件。    - `-exec`:执行命令,格式为 `command {} \;`。    - `-ok`:安全模式执行命令,每次都会提示用户确认。  #### 实例  1. 列出匹配文件:     ```bash     find . -type f -exec ls -l {} \;
    1. 删除 /logs 目录中修改时间在 5 天以前的文件:
      find logs -type f -mtime +5 -exec rm {} \;
    2. 删除指定文件并提示确认:
      find logs -type f -mtime +5 -exec -ok rm {} \;
    3. 查找包含 user1 的文件:
      find /etc -name “passwd*” -exec grep “user1” {} \;
    4. 查找属主和组权限符合 644 的文件:
      find . -type f -perm 644 -exec ls -l {} \;
    5. 查找长度为 0 的文件:
      find / -type f -size 0 -exec ls -l {} \;
    6. 查找当前目录下访问时间在 7 天以前的文件:
      find . -atime -7 -name “admin.log[0-9][0-9][0-9]” -ok rm {} \;

    7. xargs 命令详解

      xargs 命令用于处理 find 命令输出的文件。它可以分批处理文件,避免命令长度过长的问题。

      实例

    8. 列出所有普通文件并测试它们的文件类型:
      find . -type f -print | xargs file
    9. 将内存信息转储问(core dump)保存到 /tmp/core.log 文件:
      find / -name “core” -print | xargs echo “” > /tmp/core.log
    10. 给当前目录下具有读、写、执行权限的文件撤销其他用户的写权限:
      find . -perm -7 -print | xargs chmod o-w
    11. 搜索包含 hostname 的文件:
      find . -type f -print | xargs grep “hostname”
    12. 忽略 /apps/bin 目录下的文件:
      find /apps -path “/apps/bin” -prune -o -print

    13. sed 命令详解

      sed 是一个非交互式文本编辑器,可以通过模式匹配和行号定位文本。

      基本用法

    14. 打印第 2 行:
      sed -n '2p' temp.txt
    15. 打印第 1 到 3 行:
      sed -n '1,3p' temp.txt
    16. 打印包含单词 the 的行:
      sed -n '/the/p' temp.txt
    17. 打印第四行到包含 the 的行:
      sed -n '4,/the/p' temp.txt
    18. 打印包含 $ 结尾的单词:
      sed -n '/\$/p' temp.txt
    19. 打印整个文件:
      sed -n '1,$p' temp.txt
    20. 常用编辑命令

      • p:打印匹配行。
      • =:显示行号。
      • a:在定位行后附加新文本。
      • i:插入新文本。
      • d:删除定位行。
      • s:替换匹配模式。
      • r:读取另一个文件。
      • w:写入文件。
      • q:退出 sed。

      通过这些命令,你可以在 Linux 环境中高效地处理文本文件和文件系统。希望这篇文章能为你的科研生活节省不少麻烦!

    转载地址:http://tshfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现基于文件流拷贝文件(附完整源码)
    查看>>
    Objective-C实现基于模板的双向链表(附完整源码)
    查看>>
    Objective-C实现基于模板的顺序表(附完整源码)
    查看>>
    Objective-C实现基本二叉树算法(附完整源码)
    查看>>
    Objective-C实现堆排序(附完整源码)
    查看>>
    Objective-C实现填充环形矩阵(附完整源码)
    查看>>
    Objective-C实现声音录制播放程序(附完整源码)
    查看>>
    Objective-C实现备忘录模式(附完整源码)
    查看>>
    Objective-C实现复制粘贴文本功能(附完整源码)
    查看>>
    Objective-C实现复数类+-x%(附完整源码)
    查看>>
    Objective-C实现外观模式(附完整源码)
    查看>>
    Objective-C实现多尺度MSR算法(附完整源码)
    查看>>
    Objective-C实现多种方法求解定积分(附完整源码)
    查看>>
    Objective-C实现多组输入(附完整源码)
    查看>>
    Objective-C实现多项式函数在某个点的评估算法(附完整源码)
    查看>>
    Objective-C实现多项式哈希算法(附完整源码)
    查看>>
    Objective-C实现大位数乘法(附完整源码)
    查看>>
    Objective-C实现大根堆(附完整源码)
    查看>>
    Objective-C实现奇偶检验码(附完整源码)
    查看>>
    Objective-C实现奇偶转置排序算法(附完整源码)
    查看>>