bash - 将每行开头的数字复制到行尾
问题描述
我有一个产生这种行的文件。我想编辑这些行并将它们放入passageiros.txt
a82411:x:1015:1006:Adriana Morais,,,:/home/a82411:/bin/bash
a60395:x:1016:1006:Afonso Pichel,,,:/home/a60395:/bin/bash
a82420:x:1017:1006:Afonso Alves,,,:/home/a82420:/bin/bash
a69225:x:1018:1006:Afonso Alves,,,:/home/a69225:/bin/bash
a82824:x:1019:1006:Afonso Carreira,,,:/home/a82824:/bin/bash
a83112:x:1020:1006:Aladje Sanha,,,:/home/a83112:/bin/bash
a82652:x:1022:1006:Alexandre Ferreira,,,:/home/a82652:/bin/bash
a83063:x:1023:1006:Alexandre Feijo,,,:/home/a83063:/bin/bash
a82540:x:1024:1006:Ana Santana,,,:/home/a82540:/bin/bash
使用以下代码,我可以得到这样的东西:
cat /etc/passwd |grep "^a[0-9]" | cut -d ":" -f1,5 | sed "s/a//" | sed "s/,//g" > passageiros.txt
sed -e "s/$/:::a/" -i passageiros.txt
82411:Adriana Morais:::a
60395:Afonso Pichel:::a
82420:Afonso Alves:::a
69225:Afonso Alves:::a
82824:Afonso Carreira:::a
83112:Aladje Sanha:::a
82652:Alexandre Ferreira:::a
83063:Alexandre Feijo:::a
82540:Ana Santana:::a
所以我的目标是创造这样的东西:
82411:Adriana Morais:::a82411@
60395:Afonso Pichel:::a60395@
82420:Afonso Alves:::a82420@
69225:Afonso Alves:::a69225@
82824:Afonso Carreira:::a82824@
83112:Aladje Sanha:::a83112@
82652:Alexandre Ferreira:::a82652@
83063:Alexandre Feijo:::a83063@
82540:Ana Santana:::a82540@
我怎样才能做到这一点?
解决方案
请您尝试以下操作。
awk -F'[:,]' '{val=$1;sub(/[a-z]+/,"",$1);print $1,$5,_,_,val"@"}' OFS=":" Input_file
说明:也为上述代码添加说明。
awk -F'[:,]' ' ##Starting awk script here and making field seprator as colon and comma here.
{ ##Starting main block here for awk.
val=$1 ##Creating a variable val whose value is first field.
sub(/[a-z]+/,"",$1) ##Using sub for substituting any kinf of alphabets small a to z in first field with NULL here.
print $1,$5,_,_,val"@" ##Printing 1st, 5th field and printing 2 NULL variables and printing variable val with @.
} ##Closing block for awk here.
' OFS=":" Input_file ##Mentioning OFS value as colon here and mentioning Input_file name here.
编辑:在这里也添加@Aserre 的解决方案。
awk -F'[:,]' '{print substr($1, 2),$5,_,_,$1"@"}' OFS=":" Input_file
推荐阅读
- python - 奇怪的错误 - python manage.py runserver(线程 django-main-thread 中的异常)
- javascript - 如何调用rest api来获取json并在react js的下一个变量中使用它
- javascript - Regarding Blocks method in textract using Nodejs
- flutter - How to show CircularProgressIndicator in Scaffold while GridView is being loaded
- javascript - Firestore 身份验证角度和节点
- amazon-web-services - 如何配置 AWS 容器凭证的过期时间
- java - Spock模拟调用模拟类的真实方法
- python - 我试图在 if 语句中调用一个函数,但它不起作用。我也在函数中使用乌龟
- bash - 在 bash 中,为什么“local”关键字传递函数参数?
- c# - 当颜色出现在屏幕上时检测它