У меня есть файл .csv
с 130 000 строк.Я хочу прочитать все строки из этого файла и проверить, если число столбцов меньше 17, а затем добавить |0
в конце строки.
Сначала я вычислил количество столбцов, но только поПри этом время бега увеличилось с 10 до почти 3 минут.
Это то, что я пробовал:
while read line;
do
nr_columns=$(echo $line | awk -F'|' '{print NF}')
echo $line>> out
done<input_file.csv
Я пробовал также с tr
, но время работы также увеличивается.
Как я могусделать это быстрее?
Спасибо всем.Вот что я сделал:
awk -v separator=$sep -v nr_fields=$header_col -F '$sep' '{ if (NF < nr_fields) print $0separator0;else print $0}' input_file.csv > outputfile