使用sed将第一部分保留在指定行上,并删除其余部分

使用sed将第一部分保留在指定行上,并删除其余部分,sed,Sed,我知道一个文件中的行号,我想保留第一个字,删除其余的字,直到行尾。如何使用sed实现这一点? 比如说,我想转到一个文件中的第10行,看起来像这样- 好话“胡说八道”\ 我想要的是 好话 我试过这个-sed的/([a-z])。/\1/' 但这会在文件中的所有行上执行。我只希望它在一个指定的行上。您可以使用grep或awk只获取一行,然后将它导入sed(如果grep或awk不能为您完成整个工作)只在一行上工作吗?我认为这里的关键是先隔离这一行,然后再担心从中提取一些东西。如果“第一个单词”的意思是“

我知道一个文件中的行号,我想保留第一个字,删除其余的字,直到行尾。如何使用sed实现这一点? 比如说,我想转到一个文件中的第10行,看起来像这样-

好话“胡说八道”\

我想要的是
好话

我试过这个-sed的/([a-z])。/\1/'

但这会在文件中的所有行上执行。我只希望它在一个指定的行上。

您可以使用grep或awk只获取一行,然后将它导入sed(如果grep或awk不能为您完成整个工作)只在一行上工作吗?我认为这里的关键是先隔离这一行,然后再担心从中提取一些东西。

如果“第一个单词”的意思是“直到第一个空格的所有内容”,如果“在文件本身保留此更改”,则表示您不介意创建一个与前一个文件同名的新文件,如果您有一个支持
-i
sed
,您可能只需要执行以下操作:

sed -i '10s/ .*//' input-file
如果你想在定义一个词时更加严格,你可以使用
'10s/\([a-z]*\)./\1/'
使用
awk

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

当你说“只在一个指定的行”时,你的意思是只在第10行吗?如果是这样,请尝试对我无效的
10s/([a-z]+)./\\1/
。请确保正确引用字符串,以便在最终结果中只出现一次反斜杠。我希望将此更改保留在文件本身中。