亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: sed: 如何只在第一次匹配前添加內(nèi)容 [打印本頁]

作者: sway2004009    時(shí)間: 2009-01-16 18:12
標(biāo)題: sed: 如何只在第一次匹配前添加內(nèi)容
一個(gè)c文件,例如:
root@sshia2# cat mmap.c
#####################
########test
#####include####
####################
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
...

我現(xiàn)在想在第一次匹配#include 前面添加一串字符,例如:
root@sshia2# cat mmap.c
#####################
########test
#####include####
####################
sway2004009
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>


只能通過匹配#include來完成,因?yàn)榍懊娴淖⑨尣糠质遣还潭ǖ,這個(gè)只是一個(gè)例子。
所以我想再sed第一次匹配成功#include后就添加

sed '/^#include/i\
sway2004009' myfile

但是這樣做的就結(jié)果是在所有#include前面都加了sway2004009

由于有很多c文件,第一個(gè)#include 后面跟的東西不一定是一樣的。
因此不能通過匹配/^##include <unistd.h>/來完成。


謝謝。
作者: waker    時(shí)間: 2009-01-16 18:20
sed '1,/^#include/{/^#include/i\
sway2004009
}' myfile
作者: ly5066113    時(shí)間: 2009-01-16 18:20
sed '/^#include/{x;/^$/s/^/sway2004009/p;x}' myfile
作者: HH106    時(shí)間: 2009-01-16 19:09
awk  '{if(/^#include/)a++;if(a==1){print "sway2004009\n"$0;}else print $0;}' urfile
作者: 我是DBA    時(shí)間: 2009-01-16 20:36
學(xué)習(xí)了,有誰不懂的說一下,我可以代幫忙解釋,不收費(fèi)。。。
作者: dayan_he    時(shí)間: 2009-01-16 21:04
唉,sed都忘了,先man去,不懂的再來問
作者: HH106    時(shí)間: 2009-01-16 21:08
問下DBA

你簽名
“(我在學(xué)習(xí),我要進(jìn)步)

大天使
打破水鍋問到底。”
多看書,少看電視、雜志、報(bào)紙,不要輕易相信什么,要學(xué)會(huì)自己思考
shell初學(xué),幫人解釋shell腳本。。。不懂就問,再不懂還問,煩死你。煩死我。謝謝

這些都在哪設(shè)置的,我在個(gè)人資料設(shè)置里怎么沒找到?
作者: 我是DBA    時(shí)間: 2009-01-16 21:14
標(biāo)題: 回復(fù) #7 HH106 的帖子
我在學(xué)習(xí),我要進(jìn)步  -----------昵稱
大天使 --------這個(gè)等級(jí),不能設(shè)置,比如你的風(fēng)云使者
打破水鍋問到底!   ---------自定義頭銜
多看書,少看電視、雜志、報(bào)紙,不要輕易相信什么,要學(xué)會(huì)自己思考
shell初學(xué),幫人解釋shell腳本。。。不懂就問,再不懂還問,煩死你。煩死我。謝謝-----個(gè)人簽名

這些全在個(gè)人資料里設(shè)置,第一行,跟你ID同一行。
作者: HH106    時(shí)間: 2009-01-16 21:19
原帖由 我是DBA 于 2009-1-16 21:14 發(fā)表
我在學(xué)習(xí),我要進(jìn)步  -----------昵稱
大天使 --------這個(gè)等級(jí),不能設(shè)置,比如你的風(fēng)云使者
打破水鍋問到底。”   ---------自定義頭銜
多看書,少看電視、雜志、報(bào)紙,不要輕易相信什么,要學(xué)會(huì)自己思考
...

我試試,謝謝你~~
作者: cjaizss    時(shí)間: 2009-01-17 14:12

  1. sed '/#include/{isway2004009
  2. ba;};
  3. b
  4. :a n;ba'
復(fù)制代碼

[ 本帖最后由 cjaizss 于 2009-1-17 14:15 編輯 ]
作者: kns1024wh    時(shí)間: 2009-01-17 14:54
標(biāo)題: 回復(fù) #1 sway2004009 的帖子
相對(duì)功能還是比較理想的
作者: wjn740    時(shí)間: 2014-08-27 09:13
回復(fù) 10# cjaizss


    求解釋,其中,如何將多行的命令寫在一行中,因?yàn)槲蚁M谀_本中使用,但是好像也可以在Bash腳本中使用<<來達(dá)到多行,但不是具體如何操作,望指教。
作者: 聆雨淋夜    時(shí)間: 2014-10-14 15:26
回復(fù) 2# waker
為什么我寫在一行中會(huì)報(bào)錯(cuò)呢
sed '0,/^#include/{/^#include/i sway2004009}' 1.txt
報(bào)如下錯(cuò)誤
sed: -e expression #1, char 0: unmatched `{'


   




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2