六周第四次课(1月18日)
六周第四次課(1月18日)
復(fù)習(xí)?
擴(kuò)展
打印某行到某行之間的內(nèi)容http://ask.apelearn.com/question/559?
例如:有個(gè)文件test的內(nèi)容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取
[abcfd]
123
324
444
[rty]
這一部分出來(lái)呢?
答案: sed -n '/\[abcfd\]/,/\[rty\]/p' test
sed轉(zhuǎn)換大小寫(xiě)?http://ask.apelearn.com/question/7758?
sed中,使用\u表示大寫(xiě),\l表示小寫(xiě)
1. 把每個(gè)單詞的第一個(gè)小寫(xiě)字母變大寫(xiě):
sed 's/\b[a-z]/\u&/g' filename
2. 把所有小寫(xiě)變大寫(xiě):
sed 's/[a-z]/\u&/g' filename
3. 大寫(xiě)變小寫(xiě):
sed 's/[A-Z]/\l&/g' filename
sed在某一行最后添加一個(gè)數(shù)字http://ask.apelearn.com/question/288?
sed 's/\(^a.*\)/\1 12/' test
#cat??test
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
#sed 's/\(^a.*\)/\1 12/' test
askdj 12
aslkd aslkdjf3e??12
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj??12
刪除某行到最后一行?http://ask.apelearn.com/question/213?
[root@test200 ~]# cat test
a
b
c
d
e
f
[root@test200 ~]# sed '/c/{p;:a;N;$!ba;d}' test
a
b
c
定義一個(gè)標(biāo)簽a,匹配c,然后N把下一行加到模式空間里,匹配最后一行時(shí),才退出標(biāo)簽循環(huán),然后命令d,把這個(gè)模式空間里的內(nèi)容全部清除。
if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循環(huán),d命令刪除。
打印1到100行含某個(gè)字符串的行?http://ask.apelearn.com/question/1048?
這個(gè)需求,其實(shí)就是sed指定行范圍匹配,較少見(jiàn)。實(shí)現(xiàn):
sed??-n '1,100{/abc/p}'??1.txt
轉(zhuǎn)載于:https://blog.51cto.com/4375471/2062650
總結(jié)
以上是生活随笔為你收集整理的六周第四次课(1月18日)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简单的基于hash和hashchange
- 下一篇: Django 之母板