如何使用sed和/或regex使用bash修剪文件中的行?
这看起来应该很简单,但我花了太多时间搜索。如何使用sed和regex删除第四个单词后一行中的所有单词 例如:如何使用sed和/或regex使用bash修剪文件中的行?,regex,bash,macos,sed,Regex,Bash,Macos,Sed,这看起来应该很简单,但我花了太多时间搜索。如何使用sed和regex删除第四个单词后一行中的所有单词 例如: 19900101, This is a title 19091110, This is a really long title 我想要 19900101, This is a 19091110, This is a 我尝试过这样的答案,但我使用的是MacOSX,所以我得到了上下文地址错误 这可以使用cut轻松完成: cut -d ' ' -f 1-4 file 19900101,
19900101, This is a title
19091110, This is a really long title
我想要
19900101, This is a
19091110, This is a
我尝试过这样的答案,但我使用的是MacOSX,所以我得到了上下文地址错误 这可以使用
cut
轻松完成:
cut -d ' ' -f 1-4 file
19900101, This is a
19091110, This is a
或使用awk
:
awk '{NF=4} 1' file
19900101, This is a
19091110, This is a
这可能适用于您(GNU-sed):
删除行中的第五个或更多单词。这两个词都很好!请您解释一下语法好吗?awk命令将
NF
(#of fields)设置为4,从而丢弃之后的所有内容cut
命令从位置1-4
剪切字段您链接到的资源使用regex方言,我熟悉的任何sed
版本都不支持该方言。您可以尝试Perl,或者了解如何在“传统”正则表达式中可移植地表达类似\s
的内容。(这并不难。我会发布一个链接问题的答案。)
sed 's/\s*\S*//5g' file