Переместите один файл, за один раз базирующийся от определенного числа в файлах

Illumos не является полной заменой к OSOL, и я не думаю, что это будет в будущем, так как это предназначается, чтобы быть основой, из которой другие могут создать распределение. Но проверьте ОС Nexenta, эта система в большой степени основана на OSOL, и они - один из основных спонсоров позади проекта Illumos. Хотя я не использовал его лично, и я не знал бы, имеет ли это то, в чем Вы нуждаетесь.

2
13.04.2017, 15:37
2 ответа

Это должно сделать это:

for i in $(grep dateishere *.html | sed 's/\(.*\):.* \([0-9]*dateishere\).*/\1 \2/' | sort -k 2 | awk '{print $1}')
do
  mv $i blarg/
done
3
27.01.2020, 22:01
for dateNfile in $(grep dateishere *html | sed -r 's/^([^:]*):(.*)dateishere/\2:\1/' | sort -n)
do  
  name=${dateNfile/*:/}
  # echo date=${dateNfile/:*/}
  mv $name /other/location
done

Таким образом, я предполагаю, что существует всего одна строка на файл, содержа 'dateishere', и что строка запускается с даты, но команда sed могла быть изменена, для вырезания даты даже в других случаях.

Если бы у Вас есть пробелы в именах файлов, или разрывы строки и такой, вещи становятся немного более сложными, таким образом, я хотел бы проигнорировать их, если это возможно. Но от Вашего утверждения, это не имеет место.

1
27.01.2020, 22:01
  • 1
    Где делает mv войдите? –  Caleb 30.07.2011, 23:15
  • 2
    И теперь, Дамы и господа, mv входит! (Я думал, что это было очевидно). –  user unknown 30.07.2011, 23:42

Теги

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