【发布时间】:2015-07-21 20:39:16
【问题描述】:
我编写了一个程序,它从文件中读取数据并将它们插入到表中。
每一行都有变量,每两个变量之间有一个逗号。每行是表格的不同行。我想制作一个 unix 脚本,它将用 100 行打开文件并读取每一行并计算脚本将找到的,。之后我希望它编辑每一行并用 , 填充该行,直到它们的数量为 50。
例如,我需要每行有 50 个逗号 (,)。如果我读到一行并且有 30 个,,我想在这一行中添加额外的 20 个逗号。
(第 1 行)
9,15040113501460,0,b1 0035569144,91 302317960883,0,15040113501460,132,15040614170560,N,0,0,0,0,0,0,0,0,0,0,8,0,0000000000000000,0,0,2,,27,b1 003st69144,1
(第 2 行)
9,15350114601560,0,b1 0033765345,91 304294596921,0,15040113501560,132,15040610170260,N,0,0,0,0,0,0,0,0,0,0,8,0,0000000000000000,0,0,2,,27,b1 0031r69144,1
这是文件的格式。每一行都会是这样。
说明:
程序需要读取 50 个变量。所以它期望 49 ,。当文件像上面那样并且变量较少时,我将面临错误。所以我需要一个unix脚本来添加缺少的,,以便将它们作为null。
【问题讨论】:
-
我不能共享代码,因为有公司保密协议。程序只是读取每一行并将值放入变量直到行结束。我需要计算每行的 ',' 并添加 ',,,,,,,' 以便将缺少的变量插入为 null ..
-
stackoverflow.com/questions/1603566/… 这是类似的东西,但我需要计算 ',' 而不是替换它。只需添加 49(50 个变量,所以 49 ',') - (当前 ',' 的计数) 在每一行
标签: bash shell unix awk text-parsing