我对awk没有多少经验。我有一个包含电话号码和其他数据的名单。我想知道如何通过LastName,FirstName和其他信息重新排列要打印的信息。这就是我目前安排文件的方式;
FirstName LastName:(510) 548-1278:250:100:175
查看姓氏如何附加到没有空格的区号?所以我无法做到{打印$ 2 $ 1}'因为这首先给我姓氏和区号。我希望它看起来像;
LastName , FirstName (510) 548-1278:250:100:175
如何连续分割字符?
答案 0 :(得分:0)
也许这可以帮到你。
awk -F'[ :]' '{printf "%s , %s %s %s:%s:%s:%s\n", $2, $1,$3,$4,$5,$6,$7}' yourFile
测试:
$ echo "FirstName LastName:(510) 548-1278:250:100:175" | awk -F'[ :]' '{printf "%s , %s %s %s:%s:%s:%s\n", $2, $1,$3,$4,$5,$6,$7}'
LastName , FirstName (510) 548-1278:250:100:175
答案 1 :(得分:0)
您可以使用sed
echo "FirstName LastName:(510) 548-1278:250:100:175" | sed 's/ / , /;s/:/ /'
第一个替换s/ / , /
在遇到第一个空格时插入逗号。
第二个s/:/ /
替换正在用空格替换:
。