sed管道命令工具:分析standard input,对比数据、替换c、删除d、新增a、插入i、选择

语法:
sed [-nefri] [动作]

-n:使用安静模式,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印
被 sed 特殊处理的行
-e:多重编辑,且命令顺序会影响结果
-f:直接将sed的动作写在一个文件中,然后-f filename则可执行filename内的sed动作
-r:Sed 使用扩展正则,默认是基础正则表达式语法
-i:直接修改文档读取的内容,不在屏幕上输出

动作说明:[n1[,n2]]function
n1,n2:不见得会存在,一般代表选择进行动作的行数。如在10-20行内,则10,20[动作]

function有下面参数:
a    在当前行后添加一行或多行
c    用新文本修改(替换)当前行中的文本
d    删除行
i    在当前行之前插入文本
p    打印行
s    用一个字符串替换另一个,例如:1,20s/old/new/g(在1-20行内用new替换old单词)

举例:
删除
nl /etc/passwd | sed '2,5d'

新增
nl /etc/passwd | sed '2a drink tea'

行替换
nl /etc/passwd | sed '2,5c No 2-5 number'

显示
nl /etc/passwd | sed -n '5,7p'

替换字符
nl /etc/passwd | sed 's/要被替换的字符串/新字符/g'

好用的数据处理工具awk
相比于sed常常作用于一整行的处理,awk则比较顷向于将一行分成一个“字段”来处理。

awk语法:
awk ‘条件类型1{动作1}条件类型2{动作2}...’ filename

awk可以处理后续接的文件,也可以读取来自前个命令的standardoutput。但awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键和\t键。

要让awk知道这个数据有几行几例,需要awk内置变量的辅助:
NF 每一行($0)拥有的字段总数   ($0代表一整行数据,$1代表每一行的第一个字段,$n代表每行的第n个字段)
NR 目前awk所处理的是第几行数据
FS 目前的分隔符,默认是空格键


举例1:
获取/etc/passwd中前三列数据且第三列小于10以下的数据
cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t" $3}'
改进:
cat /etc/passwd | 'begin awk '{FS=":"} $3 < 10 {print $1 "\t" $3}'


举例2:
pay.txt内容如下:
Name    1st        2nd        3th
VBird    23000    24000    25000
DMTsai    21000    20000    23000
liang    43000    42000    41000
输出要求:第一行只是说明,所以第一行不要进行加总(NR=1时处理);
第二行以后就会有加总的情况出现(NR>=2以后要处理)
cat pay.txt | awk 'NR=1{print "%10s %10s %10s %10s %10s\n",$1,$2,$3,$4,$5,"Total"}
NR>=2{total=$2+$3+$4; print "%10s %10d %10d %10d %10d",$1,$2,$3,$4,total}'
针对第个举例进行说明:
i、所有awk的动作,即在{}内的动作,如果有需要多个命令辅助时,可利用分号“;”间隔,或者直接以[enter]按键来隔开每个命令
ii、逻辑运算当中,如果是“等于”的情况,则务必使用两个等号“==”
iii、格式化输出时,在printf的格式设置当中,务必加上\n,才能进行分行!
iv、与bash、shell的变量不同,在awk当中,变量可以直接使用,不需加上$符号

sed管道命令工具:分析standard input,对比数据、替换c、删除d、新增a、插入i、选择语法:sed [-nefri] [动作]-n:使用安静模式,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印被 sed 特殊处理的行-e:多重编辑,且命令顺序会影响结果-f:直接将sed的动作写在一个文件中,然后-f filename则可执行filename内的sed... Linux 提供 管道 符 “|”将两个 命令 隔开, 管道 符左边 命令 的输出就会作为 管道 符右边 命令 的输入 # 示例: echo "hello world"|grep 'hello' 正则,什么是正则? 正则表达式就是记录文本规则的代码 常用的元字符
Linux —shell正则表达式— sed 一.什么是 sed ? ​ sed (Stream EDitor)是一个强大而简单的文本解析转换 工具 ,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。 sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务。 sed 的工作...
1、 sed 工具 概述 sed (Stream EDitor)是一个强大而简单的文本解析转换 工具 ,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。 sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于Shell脚本中,用以完成各种自动化处理任务。 sed 依赖于正则表达式 2、 sed 的工作流程 主要包括读取、执行和显示三个过程。 读取: sed 从输入流(文件、 管道 、标准输入)中读取一行内容
sed 是一种流编辑器,它可以对文本进行编辑和转换。它可以从标准输入或文件中读取文本,并将结果输出到标准输出或文件中。 sed 命令 可以用于替换、删除、插入和打印文本。以下是一些常用的 sed 命令 : 1. 替换 命令 :s s 命令 用于替换文本中的字符串。语法如下: sed 's/old/new/g' filename 其中,old表示要替换的字符串,new表示要替换成的字符串,g表示全局替换。 2. 删除 命令 :d d 命令 用于删除文本中的行。语法如下: sed 'Nd' filename 其中,N表示要删除的行号。 3. 插入 命令 :i i 命令 用于在文本中插入新的行。语法如下: sed 'Ni\text' filename 其中,N表示要插入的行号,text表示要插入的文本。 4. 打印 命令 :p p 命令 用于打印文本中的行。语法如下: sed 'Np' filename 其中,N表示要打印的行号。 以上是 sed 命令 的一些基本用法,可以帮助入门。更多高级用法可以参考 sed 命令 的官方文档。