UNIX ksh Программирование - PullRequest
       0

UNIX ksh Программирование

0 голосов
/ 29 марта 2011

У меня есть | Файл с разделителями со 132 полями в каждой записи, что мне нужно сделать, это добавить последние 2 байта в поле 3 в поле 1, а затем распечатать всю запись:

пример входной записи

field1  field2  field3   field4 field5 .... field 132
123456  xyz     01/28/99 xyz123 xyz145 .... xyz567  

вывод должен быть:

field1   field2  field3   field4 field5 .... field 132
12345699 xyz     01/28/99 xya123 xyz145 .... xyz567

Вот мой скрипт:

#!/bin/ksh
IFS="|"
while read a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11; do
    yy=`expr substr "$a3" 7 2`
    acyy=$a1$yy
    print $acyy $a2 $a3 $a4 $a5 $a6 $a7 $a8 $a9 $a10 $a11
done < infile.txt  > outfile.txt

есть ли способ прочитать и распечатать все оставшиеся поля?

Пожалуйста, помогите и спасибо

1 Ответ

2 голосов
/ 29 марта 2011

не все ли «оставшиеся» слова назначены последнему параметру для чтения? (включая разделитель, |) если вам не нужны разделители, просто 'sed' последний параметр - например, $ (echo "$ a11" | sed 's / | / /')

...