aaa
bbbb
cccc
cddafsd
dasfasfas
adsfasdfa
asdfdsdfasdf
asdfasdfasd
asdfasdfasdf
adfasdfas
以上为5段文字,现在想用sed来输出指定段落(如第二段--第四段),求高手赐教!
能不能帮忙写个语句呢?谢谢
只需要知道段落号就可以。
修改了下,应该没有什么问题了。
不好意思,写得比较烂。
这个只是输出行数,不是我想要的,我要的是段落。
如第二段到第四段结果为:
cccc
cddafsd
dasfasfas
adsfasdfa
asdfdsdfasdf
asdfasdfasd
asdfasdfasdf
看错了。
谢谢,不过这个是在知道内容的情况下,我希望是在不知道内容的情况下输出某些段落
追答匹配截取,首先你要知道文本内容。
根据文本的内容考虑截取的方式和截取点,寻找要截取内容所要匹配的规律。
在一无所知的情况下,你不考虑文本环境是没办法截取。
每一个段落都会以“abc 数字"开始,以感叹号结束,但一个段落的行数不定
追答你这个需求如果我写,我只能写脚本了。
可以先按照abc 数字 到 感叹号 匹配内容。整理出一个一个以上述规则切割的小文件
写个while循环导出一个段落内容,删除一个段落内容。这样可以通过正则去循环匹配。
别的方法我想不到。非要一条搞定,还是等高手吧。
awk可以实现也行的,能不能麻烦写个语句呢?谢谢
追答正解:
awk -vNR="" '1<NR && NR<5 {print}' myfile.txt
你好,这个试了只能输出行数啊,我是希望能输出段落
追答我试了可以的啊
NR=""是以空行做分隔
1<NR, NR<5 就是第2到第4个记录
awk -vNR="" '1<NR && NR<5 {print $0,"\n" }' myfile.txt
把空行也带上
你可能打错了,应该是-vRS
追答啊,是的是的光顾着复制了...
本回答被提问者采纳Linux命令行与Shell脚本编程大全——19 sed基础
1. 替换选项:替换命令默认只替换每行的第一个匹配文本,但通过添加替换标记可以改变这一行为。有四种标记:数字指定替换第几处匹配,g替换所有匹配,p打印匹配行,w写入文件。例如,使用数字2替换每行的第二次匹配。2. 替换字符:遇到复杂字符,如正斜线,替换时需转义。sed允许选择其他字符作为替换分隔...
shell常用命令之sed命令
sed命令是Linux中强大的文本处理工具,它主要用于在文件中替换、删除或打印指定的文本。命令的基本格式为"sed -i 's\/旧字符串\/新字符串\/g' 文件名"。这里的-i参数表示修改文件内容,g参数表示全局替换,若不使用g,则只替换每行首次出现的字符串。sed还提供了删除指定行的功能,格式为"sed ‘开始...
Linux下的shell编程 如何替换文件中的内容
方法1:sed -i 's\/被替换的内容\/要替换成的内容\/' file 方法2:sed 's\/被替换的内容\/要替换成的内容\/g' file > file.out;mv file.out file。
linux shell编程sed用法
声明一个变量计空行的数目。数到1之后,开始输出(或者换入交换空间)。数到4的时候退出程序(或者把交换空间里的内容换出来输出再退出)。这样如果想改成输出其它段落的话,只需改数字即可。
linux shell sed 的用法
"uid=100(guest)gid=100(others)groups=10(users),11(floppy)"|sed 's\/^[^(]*(\\([^)]*\\).*\/\\1\/'输出 guest [^(]表示不是(^[^(]*表示不是(开头的一串,*跟在后面表示一个或者连续几个不已(开头的字符 (表示guest左边的(\\([^)]*\\)表示不以)结束的一串字符,匹配后面\\1输出 ...
谁能帮忙解释下linux shell程序中的sed "s\/$\/\/;s\/ *\/\/g;\/^$\/d" 这...
意思是删除空行,空行包括没有任何字符的空行,和只有若干个空格的空行。1、s\/$\/\/ 在每一行后面追加空。2、s为搜索。如:s\/a\/b\/ 搜索a将替换为b ,并只替换一次。3、s\/ *\/\/g 将空格删除。4、g代表搜索到的全部替换 。5、“空格星”( " *") 代理多个空格。6、\/^$\/d 删除空行。
linux shell中 sed 文件的1到7行行首有指定字符串的整行替换为为指定...
sed '1,7s\/^字符串.*\/替换内容\/' file 不要随便加 -i 参数。先确定好在加。
linux。。shell脚本。。sed '2i$NUM' 。。怎么让变量能翻译
用单引号把$NUM隔开 NUM=123;sed '2i'$NUM'' file 或者直接用双引号:NUM=123;sed "2i$NUM" file
shell中文件字符串替换
在Shell中,可以使用`sed`命令进行文件字符串替换。具体语法为:`sed -i 's\/原字符串\/新字符串\/g' 文件名`。详细解释:1. sed命令简介 `sed`是一个流编辑器,用于对文本文件进行非交互式处理。它可以对文件内容进行搜索、替换、删除、插入等操作。2. 字符串替换语法 `sed`命令中的替换语法是:...
linux shell sed 文件中的某几行到另一个文件的最后一行
将文件中的某几行取出来,放到另一个文件的最后?这个意思吗?sed -n '2,5p' file1 >>file2 将file1的2~5行取出来附加到file2后面