Linux 删除包含随机数的字符串

Linux 删除包含随机数的字符串,linux,string,concatenation,Linux,String,Concatenation,我应该怎么做才能获得报告的以下输出: 我想删除用户名和“]”后面的字符串,以及人名后面的整个字符串“:/export/home/username:/bin/csh” 输出: 以及如何在“]”之后和“:/export/home/username:/bin/csh”之前输入字符串,这是用户的全名 Juan Dela Cruz Don Quijote Uncle Sam 另一个帐户列表另存为latestmail.txt jcaole:x:64349:2000:Joanah C. Caole:/ex

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

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

输出:

以及如何在“]”之后和“:/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

BEGIN {}
{
    split($0, arr, ":");
    username = arr[1];
    gunk = arr[3];
    match(gunk, /\[(.*?)\]/, gunk_bits);
    print username gunk_bits[1];
}
END {}
BEGIN {}
{
    split($0, arr, ":");
    gunk = arr[3];
    match(gunk, /\[(.*?)\](.*?)/, gunk_bits);
    print gunk_bits[2];
}
END {}
首先,创建一个名为
foo.awk
的文本文件:

BEGIN {}
{
    split($0, arr, ":");
    username = arr[1];
    gunk = arr[3];
    match(gunk, /\[(.*?)\]/, gunk_bits);
    print username gunk_bits[1];
}
END {}
BEGIN {}
{
    split($0, arr, ":");
    gunk = arr[3];
    match(gunk, /\[(.*?)\](.*?)/, gunk_bits);
    print gunk_bits[2];
}
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, ":");
    username = arr[1];
    gunk = arr[3];
    match(gunk, /\[(.*?)\]/, gunk_bits);
    print username gunk_bits[1];
}
END {}
BEGIN {}
{
    split($0, arr, ":");
    gunk = arr[3];
    match(gunk, /\[(.*?)\](.*?)/, gunk_bits);
    print gunk_bits[2];
}
END {}
然后:


这是LinuxThank@Alex Reynolds中的一个文本文件,让我的系统管理员这样做,因为他有根密码。当我使用脚本并运行时,出现了一个错误“awk:syntax error near line 6”,即使我们将其权限更改为“chmod+x foo.awk”,也可能检查您正在使用的
awk
的版本。在这里工作正常:
$awk--version\n GNU awk 4.1.0,API:1.0