【发布时间】:2017-03-07 07:23:41
【问题描述】:
我有输入文件:
HEADER 1 | HEADER 2 | HEADER 3 | HEADER 3 | HEADER 4 |
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
我希望我的文件是这样的:(包含 3 个带有标题和尾部的拆分文件,并删除前 3 列
DETAIL 07032017
HEADER 1 | HEADER 2 |
1356438284972|1356438292151693|
EOF 3
DETAIL 07032017
HEADER 1 | HEADER 2 |
1356438284972|1356438292151693|
EOF 3
DETAIL 07032017
HEADER 1 | HEADER 2 |
1356438284972|1356438292151693|
EOF 3
至于我目前的命令;
awk -v date="$(date +"%d%m%Y")" -F\| 'NR==1 {h=$0; next}
{file="FILE_"$1"_"$2"_"date".csv";
print (a[file]++?"": "DM9 "date"" ORS h ORS) $0> file} END{for(file in a)
print "EOF " a[file] > file}' testing.csv
我只能得到(如上面的命令)我可以拆分文件,添加标题和尾部但还没有删除列:
DETAIL 07032017
HEADER 1 | HEADER 2 | HEADER 3 | HEADER 3 | HEADER 4 |
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
EOF 3
DETAIL 07032017
HEADER 1 | HEADER 2 | HEADER 3 | HEADER 3 | HEADER 4 |
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
EOF 3
DETAIL 07032017
HEADER 1 | HEADER 2 | HEADER 3 | HEADER 3 | HEADER 4 |
1356438283301|1356438284971|1356438292151697|1356438284972|1356438292151693|
EOF 3
上述命令仅用于拆分,添加带有记录数的标题和尾部。
但我想在拆分后删除前 3 列并添加标题拖车。有可能吗?
或者我需要拆分然后删除,只有最后一个做标题和拖尾?
我试试这个;
awk -v date="$(date +"%d%m%Y")" -F\| 'NR==1 {h=$0; next}
{file="FILE_"$1"_"$2"_"date".csv";
print (a[file]++?"": "DM9 "date"" ORS h ORS)**substr($0, index($0,$4))**> file} END{for(file in a) print "EOF " a[file] > file}' testing.csv
我使用了 substr 但根本不起作用。
我想删除前 3 列
【问题讨论】: