sed命令常见用法

sed -n ‘num1p‘ file 选出num1行
sed -n ‘num1,num2p‘ file 选出num1~num2行
sed -n ‘num1,$p‘ file 选出num1行到文件末尾
grep -n ‘.*‘ file |sed ‘num1p‘ -n 带行号的显示
sed  ‘/root/p‘ -n pp.txt 查找带root的行
/ /之间和grep 一样 有些正则 需加 -r 参数 类似 grep的 -E
-e 多个表达式 或的关系
sed -e ‘/pattern1/p‘ -e ‘/pattern2/p‘ -n
或者
sed ‘/pattern1/p;/pattern2/p‘ -n
sed ‘1,5d‘ 筛选除了1,5行的
cat -n pp.txt |sed -r ‘/mysql|root/d‘ 筛选出不含有 mysql或者 root的 行
sed ‘s/str1/str2/‘ file 在file里把 str1替换成str2 查找显示
sed ‘num1,num2s/str1/str2/‘ file 在file的num1~num2把 str替换成str2
大小写转换
sed ‘s/[a-z]/\u&/g‘ 1.txt
sed ‘s/[A-Z]/\l&/g‘ 1.txt
-i 修改了重定向至文件

[[email protected] ~]# cat -n pp.txt
     1  root:x:0:0:root:/root:/bin/bash
     2  #bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  #adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:#operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17  abrt:x:173:173::/etc/abrt:/sbin/nologin
    18  sssd:x:998:997:User for sssd:/:/sbin/nologin
    19  colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
    20  ntp:x:38:38::/etc/ntp:/sbin/nologin

sed ‘2p‘ pp.txt

[[email protected] ~]# sed ‘2p‘ pp.txt
root:x:0:0:root:/root:/bin/bash
#bin:x:1:1:bin:/bin:/sbin/nologin
#bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
#adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:#operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sssd:x:998:997:User for sssd:/:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

sed -n ‘2p‘ pp.txt

[[email protected] ~]# sed -n ‘2p‘ pp.txt
#bin:x:1:1:bin:/bin:/sbin/nologin

sed不具有显示行号功能 配合grep
grep -n ‘.*‘ pp.txt |sed ‘2p‘ -n

[[email protected] ~]# grep -n ‘.*‘ pp.txt |sed ‘2p‘ -n
2:#bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]# grep -n ‘.*‘ pp.txt |sed ‘2,5p‘ -n
2:#bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:#adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

grep -n ‘.*‘ pp.txt|sed  -n ‘5,$p‘

[[email protected] ~]# grep -n ‘.*‘ pp.txt|sed  -n ‘5,$p‘
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:#operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:abrt:x:173:173::/etc/abrt:/sbin/nologin
18:sssd:x:998:997:User for sssd:/:/sbin/nologin
19:colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
20:ntp:x:38:38::/etc/ntp:/sbin/nologin

grep -n ‘.*‘ pp.txt |sed ‘/root/p‘ -n

[[email protected]ogon ~]# grep -n ‘.*‘ pp.txt |sed ‘/root/p‘ -n
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:#operator:/root:/sbin/nologin
[[email protected] ~]# cat 1.txt
rt
rot
root
ro t
[[email protected] ~]# sed ‘/ro{1,}t/p‘ -n -E 1.txt
rot
root

查找含有 root或者ftp的行
grep ‘.*‘ -n pp.txt |sed -e ‘/root/p‘ -e ‘/ftp/p‘ -n

[[email protected] ~]# grep ‘.*‘ -n pp.txt |sed -e ‘/root/p‘ -e ‘/ftp/p‘ -n
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:#operator:/root:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[[email protected] ~]# cat 1.txt
php
php js
js
python
[[email protected] ~]# sed -e ‘/php/p‘ -e ‘/js/p‘ -n 1.txt
php
php js
php js
js
[[email protected] ~]# sed -e ‘/php/p‘ -e ‘/js/p‘  1.txt
php
php
php js
php js
php js
js
js
python
[[email protected] ~]# sed  ‘/php/p;/js/p‘  1.txt -n
php
php js
php js
js

cat -n pp.txt |sed ‘1,5d‘

[[email protected] ~]# cat -n pp.txt |sed ‘1,5d‘
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:#operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17  abrt:x:173:173::/etc/abrt:/sbin/nologin
    18  sssd:x:998:997:User for sssd:/:/sbin/nologin
    19  colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
    20  ntp:x:38:38::/etc/ntp:/sbin/nologin

不看#开头的注释
cat pp.txt |sed ‘/^#/d‘

sed ‘s/php/python/‘ 1.txt
sed ‘1,3s/php/python/‘ 1.txt

[[email protected] ~]# cat 1.txt
11111111
123php456
123456js
123456php
[[email protected] ~]# sed ‘s/php/python/‘ 1.txt
11111111
123python456
123456js
123456python
[[email protected] ~]# sed ‘1,3s/php/python/‘ 1.txt
11111111
123python456
123456js
123456php

大小写转换
小写转大写
sed ‘s/[a-z]/\u&/g‘ 1.txt
sed ‘s/[A-Z]/\l&/g‘ 1.txt

[[email protected] ~]# cat 1.txt
11111111
123php456
123456js
123456pHp

[[email protected] ~]# sed ‘s/[a-z]/\u&/‘ 1.txt
11111111
123Php456
123456Js
123456PHp
[[email protected] ~]# sed ‘s/[a-z]/\u&/g‘ 1.txt
11111111
123PHP456
123456JS
123456PHP
[[email protected] ~]# sed ‘s/[A-Z]/\l&/g‘ 1.txt
11111111
123php456
123456js
123456php

字符串位置替换

[[email protected] ~]# cat 1.txt
a:b:c:d
a1:b1:c1:d1
a2:b2:c2:d2
a_: :c:dddd
[[email protected] ~]# sed -r ‘s/([^:]+)(:.*:)([^:]+$)/\3\2\1/‘ 1.txt
d:b:c:a
d1:b1:c1:a1
d2:b2:c2:a2
dddd: :c:a_
时间: 2024-10-13 16:08:10

sed命令常见用法的相关文章

Linux之sed命令常见用法

1. sed(stream editor),流编辑器 linux中,主要中sed命令实现对文件的增删改替换查 名称 sed - 用于过滤和转换文本的流编辑器 SYNOPSIS sed [选项]... {script-only-if-no-other-script} [文件]... 常用选项或命令 -i 正式执行操作修改内容 -n 取消默认输出 -e 允许多项编辑 -r 使用扩展正则表达式 = 在文件内容行前增加一行行号 s 查找并替换 g 全局范围 p 打印输出 '/ /p' 正则表达式匹配/

sed命令的用法

sed命令的用法 -n:选项不打印文件的所有行 [[email protected] ~]# sed '1'p 1                  //不带-n选项,sed会把所匹配的行打印出来,  root:x:0:0:root:/root:/bin/bash             //所要求的行  root:x:0:0:root:/root:/bin/bash              // 并且打印整个文本文件  bin:x:1:1:bin:/bin:/sbin/nologin syn

sed命令基础用法

    sed(Stream EDitor)简介 sed是一个流编辑器编辑器,本身是一个管道命令,主要以行为单位处理文本文件,可以将数据进行替换.删除.新增.选取等特定工作:sed并不会处理文本文件本身,而是每当处理一个文件时,按顺序逐行读取到模式空间(内存)中,而后在模式空间中完成编辑,把编辑的结果输出到屏幕上,接着处理下一行,反复操作,直到文件结尾. 模式空间:将读取的内容放在内存中的一块区域编辑,这些内存空间就称为模式空间 格式: sed [options]    'Address Com

Linux 磁盘空间大小统计du命令常见用法

在 Linux下,可以对某个文件或文件夹所占空间大小进行统计,这里将一些常用用法汇总如下: 1.对指定文件或文件夹进行统计,缺省单位为kbyte(k或千字节),下例对文件夹testa进行统计: [[email protected] ~]$ du -s testa 1589308    testa 2.对文件夹统计的正确做法,如果想知道某个文件夹所占空间的大小,用什么命令?直接用du可以吗? 可以是可以,但是,它会将该文件夹底下所有目录都统计一遍,显然,这不是我们想要的.正确的做法是使用 -s操作

正则表达式和sed命令的用法

一.            正则表达式:   正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gre

linux下shell脚本中sed命令的用法

先来给一个案例: #将old.sql文件中的符号“|”替换为“,”,并保存到test.sql文件中 sed "s/|/,/g" "old.sql"> test.sql #将test.sql文件中的每一行最后的符号“,”删除 sed -i 's/,$//g' test.sql #在test.sql文件中每行的开头添加左括号“(” sed -i 's/^/(&/g' test.sql #在test.sql文件中每一行的末尾添右括号“)” sed -i 's

linux sed 命令的用法

原文  http://blog.chinaunix.net/uid-24426415-id-77244.html ------------------------------------------------------------------------------- 初级入门 sed工具是一种非交互式的流编辑器.默认情况下只会影响输出,不会改变输入.sed处理文档时是以行为单位的.功能有:删除.查找替换.添加.插入.从其他文件读取. 其实这些功能看起来都可以用vim等编辑器来实现.那么,为

curl命令常见用法

原博主:http://www.cnblogs.com/duhuo/p/5695256.html    都市烟火  ,敬请关注 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法:# curl [option] [url] 常见参数: -A/--user-agent <string> 设置用户代理发送给服务器 -b/--cookie <name=st

Java jar命令 常见用法

一.jar命令作用: 进行打包 -- 把多个文件打包成一个压缩包 -- 这个压缩包和Winzip的压缩格式是一样的. 区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹下包含一个Manifest.mf(清单文件)的文件 通常来说jar命令得到的压缩包有三种(压缩格式完全一样,只是后缀名不同而已): A.*.jar - 它里面包含N个class文件. B.*.war (web) - 它是一个web应用打包生成的. C.*.ear(Enterprise) -它是一个企业应用打包生成