六周第四次课(1月18日)
六周第四次課(1月18日)
復習?
擴展
打印某行到某行之間的內容http://ask.apelearn.com/question/559?
例如:有個文件test的內容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取
[abcfd]
123
324
444
[rty]
這一部分出來呢?
答案: sed -n '/\[abcfd\]/,/\[rty\]/p' test
sed轉換大小寫?http://ask.apelearn.com/question/7758?
sed中,使用\u表示大寫,\l表示小寫
1. 把每個單詞的第一個小寫字母變大寫:
sed 's/\b[a-z]/\u&/g' filename
2. 把所有小寫變大寫:
sed 's/[a-z]/\u&/g' filename
3. 大寫變小寫:
sed 's/[A-Z]/\l&/g' filename
sed在某一行最后添加一個數字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
定義一個標簽a,匹配c,然后N把下一行加到模式空間里,匹配最后一行時,才退出標簽循環,然后命令d,把這個模式空間里的內容全部清除。
if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循環,d命令刪除。
打印1到100行含某個字符串的行?http://ask.apelearn.com/question/1048?
這個需求,其實就是sed指定行范圍匹配,較少見。實現:
sed??-n '1,100{/abc/p}'??1.txt
轉載于:https://blog.51cto.com/4375471/2062650
總結
以上是生活随笔為你收集整理的六周第四次课(1月18日)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的基于hash和hashchange
- 下一篇: Django 之母板