gpt4 book ai didi

linux - 删除里面有随机数的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:59 24 4
gpt4 key购买 nike

我应该怎么做才能为我的报告获取以下输出:

我想删除用户名和上面的“]”之后的字符串,以及人名“:/export/home/username:/bin/csh”之后的整个字符串

jdelacruz:x:327[@gmail.com]Juan Dela Cruz:/export/home/jdelacruz:/bin/csh
dquijote:x:304[@yahoo.com]Don Quijote:/export/home/dquijote:/bin/csh
usam:x:314[@live.uk]Uncle Sam:/export/home/usam:/bin/csh

输出:

jdelacruz@gmail.com
dquijote@yahoo.com
usam@live.uk

还有我如何处理“]”之后和“:/export/home/username:/bin/csh”之前的字符串,这是用户的全名

Juan Dela Cruz
Don Quijote
Uncle Sam

另存为latestmail.txt的账户列表

jcaole:x:64349:2000:Joanah C. Caole:/export/home/jcaole:/bin/csh
jdantonio:x:64054:2000:Joseph D. Antonio:/export/home/jdantonio:/bin/csh
ljobando:x:65018:2000:Lervin John M. Obando:/export/home/ljobando:/bin/csh

最佳答案

下面是使用 awk 的方法:

首先,创建一个名为 foo.awk 的文本文件:

BEGIN {}
{
split($0, arr, ":");
username = arr[1];
gunk = arr[3];
match(gunk, /\[(.*?)\]/, gunk_bits);
print username gunk_bits[1];
}
END {}

假设您有一个名为 bar.txt 的文本文件:

jdelacruz:x:327[@gmail.com]Juan Dela Cruz:/export/home/jdelacruz:/bin/csh
dquijote:x:304[@yahoo.com]Don Quijote:/export/home/dquijote:/bin/csh
usam:x:314[@live.uk]Uncle Sam:/export/home/usam:/bin/csh

你可以像这样awk:

$ awk -f foo.awk bar.txt
jdelacruz@gmail.com
dquijote@yahoo.com
usam@live.uk

要获取其他内容,请创建一个名为 baz.awk 的文本文件:

BEGIN {}
{
split($0, arr, ":");
gunk = arr[3];
match(gunk, /\[(.*?)\](.*?)/, gunk_bits);
print gunk_bits[2];
}
END {}

然后:

$ awk -f baz.awk bar.txt
Juan Dela Cruz
Don Quijote
Uncle Sam

关于linux - 删除里面有随机数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com