Как поставить запятую между двумя столбцами в текстовом файле

Передайте их в командной строке и укажите в сценарии $ 1 , $ 2 и т. Д.

-1
17.01.2019, 11:26
3 ответа

Предполагая, что первая запятая не является ошибкой после 7 символов, а следующие кратны 6, я предлагаю

sed 's/\(.......\)\(......\)\(......\)/\1,\2,\3,/'
1
28.01.2020, 05:06
$ sed -E 's/(.{7})(.{6})(.{6})(.{6})/\1,\2,\3,\4/' file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593

То есть сопоставьте биты каждой строки, которая составляет новые поля, и вставьте запятую в -между ними. Сопоставление поля выполняется с помощью .{7}или .{6}в зависимости от требуемой длины поля.

5
28.01.2020, 05:06

С помощью GNU awk(gawk)вы можете задать явную ширину полей:

$ gawk '{$1=$1} 1' FIELDWIDTHS='7 6 6 6' OFS=, file
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593

См. Фиксированная обработка -Данные ширины

2
28.01.2020, 05:06

Теги

Похожие вопросы