保留第一部分并使用sed删除特定行上的其余部分

时间:2013-09-19 23:20:03

标签: sed

我知道文件中的行号,其中我想保留第一个单词并删除其余单词直到行尾。我怎么用sed这样做? 所以,我想说,我想在一个文件中排到第10行,看起来像这样 -

好话“blah blah”\

我想要的是什么 好词

我试过这个 - sed's /([a-z] )。 / \ 1 /'
但这可以在文件的所有行中完成。我只希望它在一个指定的行上。

3 个答案:

答案 0 :(得分:0)

你可以使用grep或awk只抓一行,然后把它管道输入sed(如果grep或awk不能为你做整个工作)只能在一行上工作吗?我认为这里的关键是首先隔离一行,然后担心从中提取一些东西。

答案 1 :(得分:0)

如果用“第一个字”表示“一切都在第一个空间”,如果“在文件本身中保留此更改”,则表示您不介意创建一个与该文件同名的新文件。以前的文件,如果您有sed支持-i,您可以这样做:

sed -i '10s/ .*//' input-file

如果您希望对单词的定义更具限制性,可以使用'10s/\([a-z]*\).*/\1/'

答案 2 :(得分:0)

使用awk

awk 'NR==10 {print $1}' file
goodword