Linux 删除出现特定单词的最后一行上的字符

Linux 删除出现特定单词的最后一行上的字符,linux,shell,awk,sed,Linux,Shell,Awk,Sed,我们有下面的文件示例 我们要删除主题词存在的最后一行上的字符 more file {"topic":"life_is_hard","partition":84,"replicas":[1006,1003]}, {"topic":"life_is_hard","partition":85,"replicas":[1001,1004]}, {"topic":"life_is_hard","partition":86,"replicas":[1002,1005]}, {"topic":"life_i

我们有下面的文件示例

我们要删除主题词存在的最后一行上的字符

more file

{"topic":"life_is_hard","partition":84,"replicas":[1006,1003]},
{"topic":"life_is_hard","partition":85,"replicas":[1001,1004]},
{"topic":"life_is_hard","partition":86,"replicas":[1002,1005]},
{"topic":"life_is_hard","partition":87,"replicas":[1003,1006]},
{"topic":"life_is_hard","partition":88,"replicas":[1004,1001]},
{"topic":"life_is_hard","partition":89,"replicas":[1005,1002]},
{"topic":"life_is_hard","partition":90,"replicas":[1006,1004]},
{"topic":"life_is_hard","partition":91,"replicas":[1001,1005]},
{"topic":"life_is_hard","partition":92,"replicas":[1002,1006]},
{"topic":"life_is_hard","partition":93,"replicas":[1003,1001]},
{"topic":"life_is_hard","partition":94,"replicas":[1004,1002]},
{"topic":"life_is_hard","partition":95,"replicas":[1005,1003]},
{"topic":"life_is_hard","partition":96,"replicas":[1006,1005]},
{"topic":"life_is_hard","partition":97,"replicas":[1001,1006]},
{"topic":"life_is_hard","partition":98,"replicas":[1002,1001]},
{"topic":"life_is_hard","partition":99,"replicas":[1003,1002]},
预期产量

{"topic":"life_is_hard","partition":84,"replicas":[1006,1003]},
{"topic":"life_is_hard","partition":85,"replicas":[1001,1004]},
{"topic":"life_is_hard","partition":86,"replicas":[1002,1005]},
{"topic":"life_is_hard","partition":87,"replicas":[1003,1006]},
{"topic":"life_is_hard","partition":88,"replicas":[1004,1001]},
{"topic":"life_is_hard","partition":89,"replicas":[1005,1002]},
{"topic":"life_is_hard","partition":90,"replicas":[1006,1004]},
{"topic":"life_is_hard","partition":91,"replicas":[1001,1005]},
{"topic":"life_is_hard","partition":92,"replicas":[1002,1006]},
{"topic":"life_is_hard","partition":93,"replicas":[1003,1001]},
{"topic":"life_is_hard","partition":94,"replicas":[1004,1002]},
{"topic":"life_is_hard","partition":95,"replicas":[1005,1003]},
{"topic":"life_is_hard","partition":96,"replicas":[1006,1005]},
{"topic":"life_is_hard","partition":97,"replicas":[1001,1006]},
{"topic":"life_is_hard","partition":98,"replicas":[1002,1001]},
{"topic":"life_is_hard","partition":99,"replicas":[1003,1002]}
我们尝试从包含主题词的最后一行中删除字符,如下sed cli所示,但此语法未更新


sed GNU sed 4.2.2

您应该使用地址$最后一行:

sed '$s/,$//' file

您应该使用地址$最后一行:

sed '$s/,$//' file
使用awk:

$ awk '{if(NR>1)print p;p=$0}END{sub(/,$/,"",p);print p}' file
输出:

...
{"topic":"life_is_hard","partition":98,"replicas":[1002,1001]},
{"topic":"life_is_hard","partition":99,"replicas":[1003,1002]}
使用awk:

$ awk '{if(NR>1)print p;p=$0}END{sub(/,$/,"",p);print p}' file
输出:

...
{"topic":"life_is_hard","partition":98,"replicas":[1002,1001]},
{"topic":"life_is_hard","partition":99,"replicas":[1003,1002]}

如果您的输入\ u文件中有控制M个字符,请执行以下操作将其删除:

tr -d '\r' < Input_file > temp && mv temp Input_file
一旦您对以上结果满意,那么也将>temp&&mv temp Input_文件附加到上述命令中,以将输出保存到Input_文件本身

说明:


Atac将把输入_文件从底线读取到第一行,然后将其输出传递给awk,我在awk中检查是否第一次出现主题,从最后一行删除逗号,其余行只需打印,然后再次将此输出传递给tac,使输入_文件再次以原始形式出现

如果您的输入文件中有控制M个字符,请执行以下操作将其删除:

tr -d '\r' < Input_file > temp && mv temp Input_file
一旦您对以上结果满意,那么也将>temp&&mv temp Input_文件附加到上述命令中,以将输出保存到Input_文件本身

说明:


Atac将把输入_文件从底线读取到第一行,然后将其输出传递给awk,我在awk中检查是否第一次出现主题,从最后一行删除逗号,其余行只需打印,然后再次将此输出传递给tac,使输入_文件再次以原始形式出现

我对它进行了测试,但它没有删除,可能是Windows的行结尾\r\n,而不是Linux中使用的。您可以:awk'{ifNR>1print p;p=$0}END{sub/,\r$/,\r,p;print p}'文件ie.replace,\r为\r.I测试它,但它没有删除,可能是Windows行结尾\r\n,而不是在例如Linux中使用的。您可以:awk'{ifNR>1print p;p=$0}END{sub/,\r$/,\r,p;print p}'文件ie.replace,\r为\r.I测试它,但它没有删除,我测试它,但它没有删除,看起来国会大厦的信件在键盘或电话上被打破了。看起来国会大厦的信件在你的键盘或电话上被打破了。我认为OP有在线结尾,我不知道AWK版本。你有同样的问题,我想,\R->您的解决方案与.tr-d'\r'temp&&mv temp Input\u file???@DavidC.Rankin一起工作,啊,谢谢您,您在我的辩护中表现出色,当时是凌晨4点::我现在更正了它。谢谢你让我知道。我认为OP已经结束了,我不知道AWK版本。你有同样的问题,我认为,\R-> R。您的解决方案与.tr-d'\r'temp&&mv temp Input\u file???@DavidC.Rankin一起工作,啊,谢谢您,您在我的辩护中表现出色,当时是凌晨4点::我现在更正了它。谢谢你让我知道。