У меня есть файл как это:
123123213,456,be
124243233,4346,ytr
123123123,436535,uytr
324234324,322,yt
234324323,32,tyutr
Я хочу к нулевой клавиатуре, чтобы среднее поле дало результат:
123123213,00000456,be
124243233,00004346,ytr
123123123,00436535,uytr
324234324,00000322,yt
234324323,00000032,tyutr
Как я делаю сценарий, что woud делают это?
Я видел пример как это
awk '{ $6=sprintf("%06s", $6); print $0}'
но я действительно не понимаю это и таким образом не могу получить его работа.
Так как Вы отметили свой вопрос [sed]
, вот a sed
версия на основе сценария здесь.
sed 's/[^,][^,]*/\n0000000&/2;s/\n[^,]*\(.\{8\}\),/\1,/' inputfile
Объяснение:
[^,][^,]*
(это могло также быть записано как [^,]\+
)s///2
) новая строка, набор нулей и содержание соответствия: \n0000000&
(новая строка используется для маркировки начала поля для следующего шага),\{8\}
из любого символа (получающий те символы \(\)
) сопровождаемый запятой\1
для соответствия это удаляет временную новую строку и избыточные нулиПутем это работает, должен добавить, что избыточные нули в начале поля затем обрубают все, но