Vagrant не ведет никаких журналов. Вывод, например, vagrant up --debug
, может быть перенаправлен в файл типа
vagrant up --provision --debug &> debug_log
Fragment из сеанса IRC в #vagrant at Freenode:
{{1 }}[18:29]
ada: правда, где по умолчанию хранится отладочный "файл"? А там нет?
[18:29]
бродяга не записывает в файлы журнала
..
[18:29]
{{1} }виртуальный бокс делает
[18:29]
Я даже пытаюсь >> debug_log в командной строке, и он просто не сохраняет ни одного из этих ценные детали.
[18:29]
хорошо, я бы проверил журналы VBox?
[18:30]
если вы используете провайдер vbox, да
..
[18:31]
NikosA, перенаправьте вывод с помощью &>
попробуйте следующее
for line in `cat input`; do echo ${line} | cut -c 1-4 && echo ${line} | cut -c 1-5 && echo ${line} | cut -c 1-8; done
это дает
1234
12345
12345678
ABCd
ABCde
ABCdefgi
Ваш пример неправильно отформатирован. Я предполагаю, что пробел должен быть новой строкой? Если это так, самый простой способ - использоватьcut
$ cut -c -4 input
напечатает первые 4 символа каждой строки. Повторите это с любым количеством символов, которые вам нравятся.
for len in 4 5 8; do
cut -c "1-$len" file
done
При этом многократно используется cut -c
для вырезания первой части каждой строки файла с именем file
. Длина вырезаемого бита зависит от переменной цикла len
.
Если вы строго придерживаетесь критерия «одной строки»:
for len in 4 5 8; do cut -c "1-$len" file; done
Или,как простая в использовании функция оболочки:
cut_to_lengths () {
file=$1; shift
for len do
cut -c "1-$len" "$file"
done
}
Использование:
$ cut_to_lengths file 4 5 8 1
1234
ABCd
12345
ABCde
12345678
ABCdefgi
1
A
В комментариях вы указываете, что не хотите выводить строки, если они короче длины обрезки.
Для этого мы можем изменить команду cut
на команду awk
:
awk -v len="$len" 'length >= len { print substr($0, 1, len) }'
Замените cut -c "1-$len"
приведенной выше командой awk
в приведенном выше коде.