
У меня есть текстовый файл, содержащий более 10 миллионов строк. Файл выглядит так:
1902400023
1902400029
1902400031
1902400032
Я хотел добавить заголовок, инкрементный номер ID и постоянный SHORTCODE. Ожидаемый результат:
ID,MSISDN,SHORTCODE
1,1902400023,1
2,1902400029,1
3,1902400031,1
4,1902400032,1
И так будет продолжаться до конца файла и записи в другой файл.
решение1
Я думаю, вам нужен awk
следующий код
awk 'BEGIN { OFS = ","; header="ID,MSISDN,SHORTCODE" } NR == 1 { print header }
{ $2 = $0; $1 = NR; $3 = 1; }1' file
В BEGIN
предложении мы устанавливаем разделитель выходных полей на ,
оператор и инициализируем строку заголовка. Когда файл обрабатывается, в первую строку мы вставляем заголовок, а из последующих строк мы вставляем строки, как вы показали в OP. NR
— это специальная переменная в контексте, awk
которая отслеживает номер строки, который мы используем для вашего инкрементного счетчика.
решение2
Здесь вы можете использовать команду awk, как показано ниже, для добавления номеров строк:
$ awk '{printf("%d:%s\n", NR, $0)}' millionlinetextfile > linenumberedfile