我有个档案'abc.txt文件'格式如下。你知道吗
+test1_app1 +o_test = /bin/su - user1
+test1_app1 +ae_test1d = /bin/su - user2
+test2_app +e_hd = /bin/su - user1
+crd_app +er_sd = /bin/su - user2
+rod_app +eo_tsd = /bin/su - user1
+rod_app +eo_tsd = /bin/su - user3
我喜欢搜索特定的用户,然后用不同的格式写入同一个文件
对于user1,它应该更改相同的文件abc.txt文件在下面。请注意,我正在阅读passwd的用户列表。你知道吗
+test1_app1 +o_test = (user1) ALL
+test1_app1 +ae_test1d = /bin/su - user2
+test2_app +e_hd = (user1) ALL
+crd_app +er_sd = /bin/su - user2
+rod_app +eo_tsd = (user1) ALL
+rod_app +eo_tsd = /bin/su - user3
passwd文件包含所有用户,如user1、user2、user3等
这是我迄今为止写的:
import fileinput
s=open('/etc/passwd','r')
for i in s:
if 'user' in i:
for line in fileinput.input('/tmp/abc.txt', inplace = 1):
print line.replace(i.split(':')[0], "????")
我不认为我能做到这一点线路.更换. 我可能需要用回复sub?如何使用回复sub?我相信你可以把它们组合在一起“\1”什么的?你知道吗
有人能帮忙吗?你知道吗
非常感谢
这部分你错了。您可以使用
str.replace()
实现它:用于更改
user1
的格式。如果您有多个list
形式的用户。遍历用户列表并执行此操作。你知道吗re.sub()
如果您想替换基于某些格式的内容,例如user<some_num>
,那么re.sub()
会很有用。但是对于单用户,str.replace()
是更好的选择相关问题 更多 >
编程相关推荐