Вот что я использовал для создания файлов, о которых вы говорите:
mkdir -p another/directory
for n in 1 2 3 4 5 6 7 8 9
do mkdir -p "a$n"
printf "$n $n $n 1$n $n $n $n $n\n" >"a$n/a$n.txt" #1 marks 4th col
done
Вот что я использовал для mv
файла:
mv "a$(((a=$(t=$(printf \\t)
paste a[1-9]/a[1-9].txt /dev/null |
sed -e"s/\( *[^ ][^ ]*[ $t]\)\{4\}[^$t]*/\1/g;y| |\n|;q" |
sort -rn | head -n1))-10))/a${a#1}.txt" another/directory
И вот что я сделал, чтобы проверить, что я все сделал правильно:
cat another/directory/*
9 9 9 19 9 9 9 9
... но я не получил его правильно. Это зависит от того, совпадает ли наибольшее значение с именем файла. This doesn't:
file=$(
grep -n . ./a[1-9]/a[1-9].txt |
grep :1: | cut -d\ -f1,4 |
sort -rnk2,2
)
mv "${file%%:*}" another/directory
LFLAGS := $(LFLAGS) -q
добавляет -q
к текущему значению в LFLAGS
и устанавливает LFLAGS
в результат (как просто -расширенную переменную , так как она устанавливается с помощью:=
).
Это влияет на любую команду, заданную в другом месте с помощью $(LFLAGS)
, добавляя к ней опцию -q
. Это не имеет ничего общего с запуском make
. Учитывая контекст, я предполагаю, что в обоих случаях(LFLAGS
иYFLAGS
)-q
заставляет соответствующую команду работать спокойно.