sed 顯示文件行號內容的用法


[root@oldboy02 ~]# cat >person.txt<<EOF
> 101,oldboy,CEO
> 102,zhangyao,CTO
> 103,Alex,C00
> 104,yy,CFO
> 105,feixue,CTO
> EOF
root@oldboy02 ~]# mkdir -p /oldboy
[root@oldboy02 oldboy]# cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '1p' person.txt 顯示所有內容
101,oldboy,CEO
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
1.顯示某一行,-n 取消默認輸出
[root@oldboy02 oldboy]# sed -n '1p' person.txt
101,oldboy,CEO
[root@oldboy02 oldboy]# sed -n '3p' person.txt
103,Alex,C00
2.顯示連續多行的內容,表示顯示行的范圍包含首位行
[root@oldboy02 oldboy]# sed -n '1,2p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
[root@oldboy02 oldboy]# sed -n '2,5p' person.txt(注意,2,5 表示的是連續的2,3,4,5行內容強調的是連續性)
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
3.顯示文件中包行oldboy的行
[root@oldboy02 oldboy]# sed -n '/oldboy/p' person.txt
101,oldboy,CEO
[root@oldboy02 oldboy]# grep 'oldboy' person.txt
4.顯示文件中包行oldboy的行到包含104的行。
[root@oldboy02 oldboy]# sed -n '/oldboy/,/^104/p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
[root@oldboy02 oldboy]# grep '^104' person.txt9(grep查找的時候不能顯示范圍)
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '/^104/p' person.txt (^括號表示更精確一點)
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '/^101/,/^105/p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
5.查找多個條件的方法
[root@oldboy02 oldboy]# egrep 'oldboy|yy' person.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboy02 oldboy]# sed -rn '/oldboy|yy/p' person.txt (-rn  -r 表示查找多個條件的內容)
101,oldboy,CEO
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '1p;3p;5p' person.txt ( ;號表示中間不是連續行的內容)
101,oldboy,CEO
103,Alex,C00
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '/oldboy/p;/yy/p;/feixue/p' person.txt (顯示多行不連續文件的內容)
101,oldboy,CEO
104,yy,CFO
105,feixue,CTO
sed 查詢的時候都是結合p (preint) 一起來使用
[root@oldboy02 oldboy]# sed '3a yangjuncheng' person.txt (3 表示第三行  a表示增加 3a表示在第三行的后面添加一行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
yangjuncheng
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '3i aaaaaaaaa' person.txt (i 表示在前面插入內容,如果要寫入文件是在sed后面加入i,將添加的內容寫到文件中)
101,oldboy,CEO
102,zhangyao,CTO
aaaaaaaaa
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '$p' person.txt ($p 表示最后一行)
105,feixue,CTO
[root@oldboy02 oldboy]# sed  '$a new,new,new' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
[root@oldboy02 oldboy]# sed  '$a new,new,new\nold,old,old' person.txt(文件的最后一行/n 表示在后面增加多行的內容)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
old,old,old
[root@oldboy02 oldboy]# sed -i  '$a new,new,new\nold,old,old' person.txt  (-i 表示寫入文件內容中)
[root@oldboy02 oldboy]# cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
old,old,old
cat >>person.txt <<EOF (在一個文件最后一行添加多行的方法)
wwwww
cccccccc
dddddddd
QQQQQQ
WWWWW
yang jun cheng
wang bing bing
[root@oldboy02 oldboy]# echo  test test >>person.txt (如果在文件的最后面追加的文件內容不是很多的時候用echo就行,如果多行就用cat 方法)
[root@oldboy02 oldboy]# cat person.txt
yang jun cheng
wang bing bing
li qang
test test
[root@oldboy02 oldboy]# sed '$d' persion.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
[root@oldboy02 oldboy]# sed '2,3d' persion.txt (刪除2到3行)
101,oldboy,CEO
104,yy,CFO
105,feixue,CTO
企業案例:不顯示文件的空行
[root@oldboy02 oldboy]# cat -n persion.txt
     1    101,oldboy,CEO
     2    
     3    102,zhangyao,CTO
     4    
     5    103,Alex,C00
     6    
     7    104,yy,CFO
     8    
     9    105,feixue,CTO
[root@oldboy02 oldboy]# cat -A persion.txt (-A 表示不帶空格的行)
101,oldboy,CEO$
$
102,zhangyao,CTO$
$
103,Alex,C00$
$
104,yy,CFO$
$
[root@oldboy02 oldboy]# grep -v '^$' persion.txt (過濾掉空行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# egrep -v '^$' persion.txt(過濾掉空行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '/^$/d' persion.txt (刪除空行的方法,如果要寫入文件加 -i )
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '/^$/p' persion.txt (顯示文件的空行)
[root@oldboy02 oldboy]# sed -n '/^$/!p' persion.txt (排除空行方法)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# awk '!/^$/' persion.txt (排除空行的方法)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
變量引用
[root@oldboy02 oldboy]# x=oldboy
[root@oldboy02 oldboy]# y=oldgirl
[root@oldboy02 oldboy]# sed "s#$x#$y#g" persion.txt (這里變量的引用必須要用雙引號才行,單引號識別不出來)
101,oldgirl,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed "s#oldboy#oldgirl#g" persion.txt
101,oldgirl,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
 
 
 
 
 
 
 
 
 
[root@oldboy02 ~]# cat >person.txt<<EOF
> 101,oldboy,CEO
> 102,zhangyao,CTO
> 103,Alex,C00
> 104,yy,CFO
> 105,feixue,CTO
> EOF
root@oldboy02 ~]# mkdir -p /oldboy
[root@oldboy02 oldboy]# cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '1p' person.txt 顯示所有內容
101,oldboy,CEO
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
1.顯示某一行,-n 取消默認輸出
[root@oldboy02 oldboy]# sed -n '1p' person.txt
101,oldboy,CEO
[root@oldboy02 oldboy]# sed -n '3p' person.txt
103,Alex,C00
2.顯示連續多行的內容,表示顯示行的范圍包含首位行
[root@oldboy02 oldboy]# sed -n '1,2p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
[root@oldboy02 oldboy]# sed -n '2,5p' person.txt(注意,2,5 表示的是連續的2,3,4,5行內容強調的是連續性)
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
3.顯示文件中包行oldboy的行
[root@oldboy02 oldboy]# sed -n '/oldboy/p' person.txt
101,oldboy,CEO
[root@oldboy02 oldboy]# grep 'oldboy' person.txt
4.顯示文件中包行oldboy的行到包含104的行。
[root@oldboy02 oldboy]# sed -n '/oldboy/,/^104/p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
[root@oldboy02 oldboy]# grep '^104' person.txt9(grep查找的時候不能顯示范圍)
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '/^104/p' person.txt (^括號表示更精確一點)
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '/^101/,/^105/p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
5.查找多個條件的方法
[root@oldboy02 oldboy]# egrep 'oldboy|yy' person.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboy02 oldboy]# sed -rn '/oldboy|yy/p' person.txt (-rn  -r 表示查找多個條件的內容)
101,oldboy,CEO
104,yy,CFO
[root@oldboy02 oldboy]# sed -n '1p;3p;5p' person.txt ( ;號表示中間不是連續行的內容)
101,oldboy,CEO
103,Alex,C00
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '/oldboy/p;/yy/p;/feixue/p' person.txt (顯示多行不連續文件的內容)
101,oldboy,CEO
104,yy,CFO
105,feixue,CTO
sed 查詢的時候都是結合p (preint) 一起來使用
[root@oldboy02 oldboy]# sed '3a yangjuncheng' person.txt (3 表示第三行  a表示增加 3a表示在第三行的后面添加一行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
yangjuncheng
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '3i aaaaaaaaa' person.txt (i 表示在前面插入內容,如果要寫入文件是在sed后面加入i,將添加的內容寫到文件中)
101,oldboy,CEO
102,zhangyao,CTO
aaaaaaaaa
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '$p' person.txt ($p 表示最后一行)
105,feixue,CTO
[root@oldboy02 oldboy]# sed  '$a new,new,new' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
[root@oldboy02 oldboy]# sed  '$a new,new,new\nold,old,old' person.txt(文件的最后一行/n 表示在后面增加多行的內容)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
old,old,old
[root@oldboy02 oldboy]# sed -i  '$a new,new,new\nold,old,old' person.txt  (-i 表示寫入文件內容中)
[root@oldboy02 oldboy]# cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
old,old,old
cat >>person.txt <<EOF (在一個文件最后一行添加多行的方法)
wwwww
cccccccc
dddddddd
QQQQQQ
WWWWW
yang jun cheng
wang bing bing
[root@oldboy02 oldboy]# echo  test test >>person.txt (如果在文件的最后面追加的文件內容不是很多的時候用echo就行,如果多行就用cat 方法)
[root@oldboy02 oldboy]# cat person.txt
yang jun cheng
wang bing bing
li qang
test test
[root@oldboy02 oldboy]# sed '$d' persion.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
new,new,new
[root@oldboy02 oldboy]# sed '2,3d' persion.txt (刪除2到3行)
101,oldboy,CEO
104,yy,CFO
105,feixue,CTO
企業案例:不顯示文件的空行
[root@oldboy02 oldboy]# cat -n persion.txt
     1    101,oldboy,CEO
     2    
     3    102,zhangyao,CTO
     4    
     5    103,Alex,C00
     6    
     7    104,yy,CFO
     8    
     9    105,feixue,CTO
[root@oldboy02 oldboy]# cat -A persion.txt (-A 表示不帶空格的行)
101,oldboy,CEO$
$
102,zhangyao,CTO$
$
103,Alex,C00$
$
104,yy,CFO$
$
[root@oldboy02 oldboy]# grep -v '^$' persion.txt (過濾掉空行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# egrep -v '^$' persion.txt(過濾掉空行)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed '/^$/d' persion.txt (刪除空行的方法,如果要寫入文件加 -i )
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed -n '/^$/p' persion.txt (顯示文件的空行)
[root@oldboy02 oldboy]# sed -n '/^$/!p' persion.txt (排除空行方法)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# awk '!/^$/' persion.txt (排除空行的方法)
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
變量引用
[root@oldboy02 oldboy]# x=oldboy
[root@oldboy02 oldboy]# y=oldgirl
[root@oldboy02 oldboy]# sed "s#$x#$y#g" persion.txt (這里變量的引用必須要用雙引號才行,單引號識別不出來)
101,oldgirl,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
[root@oldboy02 oldboy]# sed "s#oldboy#oldgirl#g" persion.txt
101,oldgirl,CEO
102,zhangyao,CTO
103,Alex,C00
104,yy,CFO
105,feixue,CTO
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM