У меня есть формат ввода, как показано ниже.

  • первое поле должно быть 9 цифр
  • второе поле должно быть 5 цифр
  • третье поле должно быть 5 цифр перед десятичной
  • четвертое поле следует добавлять без запятой (запятая должна быть удалена).

Входные данные:

100574,1,2.66,SB        
574155582,1,2.47,SB

Мне нужен вывод как ниже формат

0001005740000100002.66SB  
5741555820000100002.47SB

Как мне сделать сценарий, который бы сделал это?

1 ответ1

1

Нечто подобное должно работать - вам, возможно, придется поиграться с конкретными значениями ваших операторов printf.

cat input | awk 'BEGIN {FS=","}; {printf "%09d", $1; printf "%05d", %2; printf "%05.2f", $3; printf "%s", $4 };'

Если ваша проблема усложняется, я бы порекомендовал перейти на python или другой более продвинутый язык.

Если вы застряли, попробуйте посмотреть https://www.gnu.org/software/gawk/manual/gawk.html.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .