Warm tip: This article is reproduced from serverfault.com, please click

python-如何将.txt中的两个值分隔为两个不同的文件?

(python - How to separe two values from .txt to two different files?)

发布于 2020-11-28 01:30:12

我在.txt文件中有一组用户数据库转储(假设在C:\ Dumps文件夹中)

所有.txt文件的结构都相同:

login:password
login:password
login:password

我的问题是将登录名从所有文件分离到“ logins.txt”并分离密码“ passwords.txt”的最简单方法是什么?这些是出于统计目的的数据,因此没有顺序[无论如何将最终排序]

我试过了 :

gawk.exe -F: "{print $ 1}" dump1.txt > logins1.txt
gawk.exe -F: "{print $ 2}" dump1.txt > passwords1.txt
gawk.exe -F: "{print $ 1}" dump2.txt > logins2.txt
gawk.exe -F: "{print $ 2}" dump2.txt > passwords2.txt

并且该方法是有效的,但是由于文件的数量,我想问一个简单的方法来自动将这两个数据与该文件夹中的文件分开。

Questioner
zielar
Viewed
22
Raman Sailopal 2020-11-28 19:33:52

你可以在多个文件上运行awk,也可以从awk代码内进行操作重定向,因此:

awk -F: '{ split(FILENAME,map,".");fileno=substr(map[1],length(map[1]));print $1 > "login"fileno".txt"; print $2 > "password"fileno".txt" }' dump*.txt

我们将字段定界符设置为:,然后使用awk的保留FILENAME变量来跟踪正在处理的现有文件。这样,我们就可以通过使用awk的split函数并引用map [1]在数组映射中拆分文件名来获得文件名前缀。然后,我们使用awk的substr函数对其进行进一步处理,以从文件前缀的最后一个字符中获取文件号。我们利用该filno变量将$ 1输出到登录文件,将$ 2输出到密码文件。