在awk中拆分和重新排列

时间:2016-12-06 13:04:53

标签: awk

我对awk没有多少经验。我有一个包含电话号码和其他数据的名单。我想知道如何通过LastName,FirstName和其他信息重新排列要打印的信息。这就是我目前安排文件的方式;

FirstName LastName:(510) 548-1278:250:100:175

查看姓氏如何附加到没有空格的区号?所以我无法做到{打印$ 2 $ 1}'因为这首先给我姓氏和区号。我希望它看起来像;

LastName , FirstName (510) 548-1278:250:100:175

如何连续分割字符?

2 个答案:

答案 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/:/ /替换正在用空格替换: