Я пытаюсь вставить строку «abcd» в позиции 80 в каждой строке файла фиксированной длины.
Входной файл
1212121212121212121213231232345 00000003088 234235235321 MISS WAN
1212121212121212121213231232345 00000003088 324556346366 MISS NISCH
1212121212121212121213231232345 00000003088 547478657588 MISS RACHEL
1212121212121212121213231232345 00000009781 313156475788 MR & MRS ROCK
Длина каждой записи
awk '{print length}' temp.txt
74
76
77
79
Я не смогвставьте данные в 80, и я попробовал нижеприведенные команды
sed "s/.\{80\}/&abcd/" test.txt
awk -vFS="" -vOFS="" '{$80=$80"abcd"}1' test.txt
Я подумал, что сначала я должен увеличить длину записей, чтобы потом использовать вышеуказанные команды ..
Для вставки пробелов
sed -e "s/.\{75\}/& /g" test.txt
sed 's/$/ /" test.txt
Внутри цикла
while read line
do
printf "$line " >>temp.txt
done <test.txt
Большую часть времени в вышеуказанные пробелы вносятся следующиестроки и потеряли часть содержимого , как показано ниже ..
4044046160710301740053062257440 00000003088 850052246976 MISS WAN
046160710301740053062257440 00000003088 850052246976 MISS NISCH
046160710301740053062257440 00000003088 850052246976 MISS RACHEL
2011888360797600140053062257440 00000009781 851011576287 MR & MRS ROCK
Ожидаемый ответ:
4044046160710301740053062257440 00000003088 850052246976 MISS WAN abcd
4044046160710301740053062257440 00000003088 850052246976 MISS NISCH abcd
4044046160710301740053062257440 00000003088 850052246976 MISS RACHEL abcd
2011888360797600140053062257440 00000009781 851011576287 MR & MRS ROCK abcd
Любые указания в направлении вправоОтвет будет высоко ценится.