Вы можете проверить:
Это работает для меня, если я правильно вас понял:
cat textExample.txt | tr -d "\n" | awk '{print substr($0, 8, 9) " " substr($0, 77, 6) " " substr($0, 189, 7)}'
Я не понимаю, что вы имеете в виду.
Но попробуй:
... | tr -d '\n' |
awk '{printf "%s %s %s\n", substr($0, 8, 9),substr($0, 77, 6),substr($0, 189, 7)}'
которые дают с вашим вкладом
tr -d '\n' < se | awk '{printf "%s %s %s\n", substr($0, 8, 9),substr($0, 77, 6),substr($0, 189, 7)}'
marvelled answer blessed
printf
, которые по умолчанию не заканчиваются новой строкой (в отличие отprint
)обратите внимание, что вы также можете использовать подоболочку
( cmd1 arg 1
cmd2 arg for 2
cmd 3 ) > result
который поместит вывод cmd
s в result
.
С ударом
cat extract_words.sh
#!/bin/bash
concat=" "
min=$(($6+$7))
while read line
do
concat="$concat$line"
if test "${#concat}" -ge "$min" ; then
break
fi
done < "$1"
echo "${concat:$2:$3}" "${concat:$4:$5}" "${concat:$6:$7}"
Ты это так называешь
./extract_words.sh "textExample.txt" 8 9 77 6 189 7