Заменить номер в первом столбце без указания команды для каждой строки в файле

как правильно указал @steeldriver, необходимо убедиться, что в качестве входных данных для параметра - value используется целое число.

Этот сценарий отлично работает

#!/bin/sh
# set display brightness with a zenity gui
var=$(xbacklight -get);

VALUE=$(zenity --scale --text="select display brightness" --value="${var%.*}" --title "adjust brightness");
xbacklight -set $VALUE;
1
25.10.2018, 15:40
1 ответ

Сawk:

$ awk '{ $1 -= lshift(rshift($1,16),16); print }' <file
39961 VE3THW Wayne
39962 VA3ECM Mathieu
39963 VE3QC Guy
39964 VE3LDY Louella
39965 VE3JFN Jeffrey
39966 VA3UZ Allan
39967 VA3BOC Hans
39968 VE3JMR
39969 VA3AMO Rolando
39970 VA3AMO Rolando
39973 VE3SLD Barry
39974 VA3DB Diane
39975 VE3FVD Friedrich
39976 VE3IAO John
39977 VA3MSV John
39978 VA3BTQ Jacqualine
39979 VA3BTQ Jacqualine
39980 VE3ZXN Denis
39981 VE3ZXN Denis
39982 VE3EM Don
39983 VA3TDG Douglas
39984 VA3MRJ David
39985 VA3ZDX Gregory

Это удаляет все, кроме младших 16 битов информации в первом столбце входных данных, что, по-видимому, и делает ваш скрипт.

Чтобы более точно воспроизвести табличный формат входных данных, передайте результат через column -t.

Использование цикла оболочки:

while read -r num stuff; do
    printf '%d %s\n' "$(( num - (( num >> 16 ) << 16) ))"  "$stuff"
done <file

Если вам нужна четырехсекундная задержка при печати каждой строки, вставьте соответствующие вызовы sleepв цикл оболочки или вызовите system("sleep N")в коде awk, где N— некоторое положительное число.

Чтобы использовать исходный сценарий:

while read -r num stuff; do
    printf '%d %s\n' "$(./bin.sh "$num" )"  "$stuff"
done <file

То есть вызвать скрипт в подстановке команды на число, прочитанное из вашего файла. Обратите внимание, однако, что это будет очень неэффективно для больших файлов, так как ваш сценарий вызывает несколько внешних утилит для выполнения своих вычислений, а также безоговорочно затирает файл(/tmp/bin.txt)и оставляет его позади. Я бы, наверное, сам выбрал сценарий awk.

Связанные:

2
27.01.2020, 23:31

Теги

Похожие вопросы