Хорошо, поэтому я пытаюсь написать простой awk, чтобы очистить некоторые запятые некоторых файлов csv, которые у меня есть.awk, настройка FS = ",", похоже, не работает, есть ли оговорки, о которых я должен знать?
Вот несколько строк данных выборочных
PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011 10:09:14 PM,,,,,5,,,4,,
PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011 10:09:23 PM,,,,,67,,,69,,
PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011 10:09:40 PM,,,,,7,,,5,,
PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011 10:09:40 PM,,,,,6,,,5,,
В качестве простого первого шага, я хочу, чтобы выполнить это (то, что я ultimatly хочу сделать, это более сложный, но это первое, что мне нужно сделать и я не могу даже получить это право :()
PRD,PEWPRV100D,EWPRVU457D,12/31/2011 10:09:14 PM,5,4,
PRD,PEWPRV100D,EWPRVU250D,12/31/2011 10:09:23 PM,67,69,
PRD,PEWREF100D,EWREFU045D,12/31/2011 10:09:40 PM,7,5,
PRD,PEWPRV100D,EWPRVU191D,12/31/2011 10:09:40 PM,6,5,
Вот моя первая попытка на AWK сценария
#!/bin/awk
BEGIN{FS=",";}
{print $0,$4,$7,$11,$16,$19 }
END{print "DONE"}
, который производит
PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011 10:09:14 PM,,,,,5,,,4,,,,,,,
PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011 10:09:23 PM,,,,,67,,,69,,,,,,,
PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011 10:09:40 PM,,,,,7,,,5,,,,,,,
PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011 10:09:40 PM,,,,,6,,,5,,,,,,,
более выразительный сценарий, я пытался:
#!/bin/awk
BEGIN{FS=",";}
{printf("$$%s$$", $0) }
END{print "DONE"}
, который производит
$$PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011 10:09:14 PM,,,,,5,,,4,,$$
$$PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011 10:09:23 PM,,,,,67,,,69,,$$
$$PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011 10:09:40 PM,,,,,7,,,5,,$$
$$PRD,,,,PEWPRV100D,,,EWPRVU191D,,,,12/31/2011 10:09:40 PM,,,,,6,,,5,,$$
показывает (я думаю), что FS = "" не устанавливает разделитель в запятую, так как вся строка рассматривается как один столбец. Я также пробовал много разных форм этой линии, ничто, похоже, не имеет значения. На страницах man версии awk утверждается, что FS - это var, который я должен установить. Я также попробовал флаг hte -F, который тоже не помог.
Есть ли что-то очевидное, что я здесь отсутствует?
+1 для хорошо отформатированный вопрос, с входом и выходами образца. Удачи. – shellter