【发布时间】:2018-11-20 14:22:48
【问题描述】:
我有一个这样的字符串:
myString='value1|value57|value31|value21'
我有一个名为 values_to_remove.txt 的文件,其中包含一个值列表,每行一个,以这种方式
values_to_remove.txt
value1
value31
在 bash 中,如何从字符串中删除“values_to_remove.txt”中包含的值,考虑到这些值是用管道分隔的,当然如果我删除一个值,我还必须删除前面的和跟随管道(如果有)。
我已经在 python 中实现了这一点,并从 bash 中调用了 python 脚本,但是我需要直接在 bash 中使用一行命令而不是小脚本来执行此操作,否则我已经可以使用我的小 python 脚本了。
这是python代码
myString = 'value1|value2|value3|value4'
arrString = myString.split("|")
with open("myfile.txt", encoding="utf-8") as file:
for l in file:
if l in arrString:
arrString.remove(l)
myNewString = "|".join(arrString)
注意:用管道分隔的值可以是任何字符串。
谢谢
【问题讨论】:
-
我已经在 python 中完成了这项工作,并从 bash 中调用了 python 脚本,但我需要直接在 bash 中执行此操作
-
我已经更新了问题并编辑了错误的部分
-
@Inian 的意思是用你编写的 python 代码更新帖子。
-
添加了python代码,但我不明白你的要求。你以为我在撒谎吗?
-
@user2548436:没什么,只是这样,人们会更容易接受你的问题,如果他们看到为解决问题所做的一些努力/代码,而不是公然要求代码请求