Что-то вроде этого?
awk 'FNR==1{print $1/2,$2;next}1' ./*.txt #or /directory/* or just file.txt
Или даже
awk 'FNR==1{$1=$1/2}1' file1
Вышеупомянутый awk выведет соответствующие результаты на ваш экран, или вы можете перенаправить измененный вывод в новый файл, используя >newfile
С помощью GNU awk вы можете применять изменения непосредственно в исходном файле. файл, используя параметр gnu awk inplace:
awk -i inplace 'FNR==1{$1=$1/2}1' file1
Если ваш awk не поддерживает inplace , вы можете сделать это вручную, как
awk 'FNR==1{$1=$1/2}1' file > newfile && mv newfile file
Это на самом деле то, что awk (и даже sed) выполняет редактирование на месте под капотом.
«Работает вручную, сбой в cron» почти всегда происходит из-за одного из этих:
PATH
и др.; У меня похожая проблема с моим telnet-скриптом спавна. Скрипт работает нормально до тех пор, пока не будет добавлен ожидаемый _после тайм-аута дескриптора. Попробуйте удалить expect _после {.. }. Это работа для меня.