shell编程中怎么对文本操作

比如一个有n行的文本文件1.删除某一行用什么命令。2.用已知的内容替换文件中的一行。3.还有重定向只有>>和>这两种是吗?看看看的头都大了。~~~补充一下第一个问题:删除... 比如一个有n行的文本文件
1.删除某一行用什么命令。
2.用已知的内容替换文件中的一行。
3.还有重定向只有>>和>这两种是吗?看看看的头都大了。~~~
补充一下第一个问题:
删除之后不能有空行,即删除前:1:asd 2:asdasd 3:asd
删除后不能是:1:asd 2: 3:asd
必须是1:asd 2:asd。不知道这么讲清不清楚

对了还有一个问题,grep命令用什么参数可以让他在只指定的行中进行匹配。比如我想让他在第3行中匹配该怎么弄,能用grep最好,实在不行用那个什么sed,awk的也行。谢谢大家
展开
 我来答
cao_doctor
2012-12-25 · TA获得超过209个赞
知道答主
回答量:50
采纳率:0%
帮助的人:29.8万
展开全部
cat test.txt
asd
asdasd
asd

sed -i '/asdasd/d' test.txt 删除匹配asdasd 的行,其中asdasd 为匹配内容 test.txt 为文件名
sed -i '2d' test.txt 删除第2行

指定行匹配
第二行中 匹配 asdasd

sed -n '2p' test.txt |sed -n '/asdasd/p'

head -2 test.txt |tail -1|sed -n '/asdasd/p'

awk 'NR==2' test.txt|sed -n '/asdasd/p'

awk 'NR==2{if($0~asdasd)print}' test.txt
更多追问追答
追问
sed -n '2p' test.txt |sed -n '/asdasd/p'head -2 test.txt |tail -1|sed -n '/asdasd/p'这几行是什么意思,能不能解释下。我知道d是删除,a是添加好像,那P是什么呢?
追答
首先每一行都是一种方法,
你的两行放一起了,
小写p 是打印的意思
sed -n '2p' test.txt |sed -n '/asdasd/p'
解释:

1、-n 是不打印原文件内容
2、 sed -n '2p' test.txt 打印第二行
3、| 管道符 (功能 前面的输出内容做为后面的输入内容)

4、sed -n '/asdasd/p' 匹配asdasd打印

head -2 test.txt |tail -1|sed -n '/asdasd/p'

1、head -2 test.txt 打印前两行
2、tail -1 前两行中 取倒数第一行 (等于取第二行)
3、同上, 匹配asdasd打印

拓展说明:sed 中还有一个大写的P参数 用于空间模式(多行匹配)
自己可以去了解一下 sed多行模式空间的N P D操作
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式