linux-修改文件命令(补充)
1. Tac命令
tac 命令是 Linux 系统中一个用于逆序显示文件内容的工具。它的名称是 "cat" 的反向拼写,作用与 cat 命令相反。cat 命令按文件内容的原始顺序显示,而 tac 命令则从文件的最后一行开始,逐行反向显示,直到第一行
实例:
1. 输出文件的逆序内容:$ tac file.txt
此命令会将file.txt文件的内容以逆序的方式输出。
2. 将多个文件合并后以逆序的方式输出:$ tac file1.txt file2.txt file3.txt
该命令会将file1.txt、file2.txt和file3.txt的内容合并后以逆序的方式输出。
2. sed命令
在 Linux 和 Unix 系统中,sed(stream editor)是一款功能强大且灵活的文本处理工具。它可以在不需要用户交互的情况下,对文本进行多种形式的编辑和转换。
基本语法如下:sed [选项] '脚本' 文件
选项:可以是 -e(表达式),-f(脚本文件)等。
脚本:包含一个或多个 sed 命令。
文件:要处理的文本文件。
常用选项:
-
-e 脚本 或 --expression=脚本:直接在命令行中添加 sed 命令。
-
-f 脚本文件 或 --file=脚本文件:从指定的脚本文件中读取 sed 命令。
-
-n 或 --quiet 或 --silent:仅显示由 sed 命令处理的行。
-
-i[SUFFIX] 或 --in-place[=SUFFIX]:直接编辑文件内容,原文件内容会被替换,如果指定了 SUFFIX,则会保存备份。
替换文本 (s)
基本格式为:
- sed 's/原文本/新文本/选项' 文件
- g:全局替换,替换行内所有匹配的文本。
- N:替换第 N 个匹配项。
3. Awk命令
awk是一种强大的文本处理工具,主要用于模式扫描和文本处理
语法结构:
awk '模式' file # 默认就是输出 不需要加动作
awk '模式+动作' file
可以将其他命令的输出|作为awk命令的输入:df -h|awk 'NR==2'
awk取行:
语法结构:
awk 'NR==3' fileNR awk的内置变量,存储着每行的行号
符号:
- == 等于第几行
- > 大于第几行
- >= 大于等于第几行
- < 小于第几行
- <= 小于等于第几行
- != 不等
- && 并且 类似sed的 1,3
-
|| 或者
awk取列
awk '{print $1}' file # 取出文件中的第1列默认按照空格或者tab键分隔成列;如果没有空格或者tab键,awk会将整行看成一列;在awk中一切在动作中的字符串都被看做是变量,加上双引号则视为普通的字符串
awk内置变量:
- $0 # 表示整行
- $1 # 表示文件的第1列
- $2 # 表示文件的第2列
- , # 逗号表示空格
- NF # 表示每一行最后一列的列号
- awk '//' file # 模糊查找文件中的字符串
- awk '//,//' file # 区间范围