String 使用bash删除列表中的重复字符串

String 使用bash删除列表中的重复字符串,string,bash,cygwin,String,Bash,Cygwin,如何使用bash删除在列表的大多数行中重复的字符串 例如 我的列表如下所示: Rex Rocket Steam Game Magdalena Steam Game FLASHOUT 2 Steam Game Falcon Girls Like Robots Steam Game The Land Of Lamia Steam Game Aeon Command 我想删除所有以这种方式结束的行中所有的“蒸汽游戏”字符串 我已经生锈了,这看起来很简单,但我想不出来。有很多选择,sed可能是最简单的

如何使用bash删除在列表的大多数行中重复的字符串

例如

我的列表如下所示:

Rex Rocket Steam Game
Magdalena Steam Game
FLASHOUT 2 Steam Game
Falcon
Girls Like Robots Steam Game
The Land Of Lamia Steam Game
Aeon Command
我想删除所有以这种方式结束的行中所有的“蒸汽游戏”字符串


我已经生锈了,这看起来很简单,但我想不出来。

有很多选择,
sed
可能是最简单的

$ sed 's/Steam Game$//' foo.txt        
Rex Rocket 
Magdalena 
FLASHOUT 2 
Falcon
Girls Like Robots 
The Land Of Lamia 
Aeon Command

您要求删除
“蒸汽游戏”
,而不是
“蒸汽游戏”
。如果还希望删除空间,请在regex:
的/Steam Game$/'
中添加一个空间。如果有多个空格,也可以使用
's/*Steam Game$/'

有许多选项,
sed
可能是最简单的

$ sed 's/Steam Game$//' foo.txt        
Rex Rocket 
Magdalena 
FLASHOUT 2 
Falcon
Girls Like Robots 
The Land Of Lamia 
Aeon Command

您要求删除
“蒸汽游戏”
,而不是
“蒸汽游戏”
。如果还希望删除空间,请在regex:
的/Steam Game$/'
中添加一个空间。如果有多个空格,也可以使用
's/*Steam Game$/'

这会在删除的每一行末尾留下一个空格。谢谢!这很有效。现在的问题是,当我将该命令重定向到一个文件时,它会从每一行中删除所有换行符。有什么想法吗?真奇怪。你到底是怎么运作的?你没有使用反勾号,是吗?Linux?马科斯?这是windows文件吗?我正在Win10中使用cygwin。我不知道这可能会影响结果。这会在删除它的每行末尾留下一个空格。谢谢!这很有效。现在的问题是,当我将该命令重定向到一个文件时,它会从每一行中删除所有换行符。有什么想法吗?真奇怪。你到底是怎么运作的?你没有使用反勾号,是吗?Linux?马科斯?这是windows文件吗?我正在Win10中使用cygwin。我不知道这会影响结果。
Steam游戏
是硬编码字符串,还是应该从输入中推导出来?
Steam游戏
是硬编码字符串,还是应该从输入中推导出来?