Что простой способ состоит в том, чтобы обрезать строки N от хвоста файла (без использования 'головы')?

Вы не настроили ваше приложение так, чтобы home.html был доступен для аутентифицированных пользователей. Поэтому вы должны добавить что-то вроде этого (я знаком только с конфигурацией на основе xml):

http.authorizeRequests().antMatchers("/home.html").fullyAuthenticated();

См. Также: https://www.baeldung.com/security-none-filters- none-access-allowAll и https://www.baeldung.com/spring-security-expressions

10
задан Christopher Ashworth 7 January 2009 в 14:07
поделиться

7 ответов

Это будет работать над OS X и могло бы быть немного более легко понятно, чем sed пример:

< myfile.txt tail -n +15 | tail -r | tail -n +10 | tail -r

Конечно, если можно достать версию GNU head, это может быть сделано еще более изящно:

< myfile.txt tail -n +15 | head -n -9

Будьте знающие tail запускается в энной строке в то время как head пропуски n строки входа.

14
ответ дан 3 December 2019 в 16:11
поделиться

Используйте отрицательное число строк с head команда:

cat myfile.txt | head -n  -9

Это печатает все кроме последних 9 строк.

4
ответ дан 3 December 2019 в 16:11
поделиться

Вы могли использовать sed:

sed -n -e :a -e '1,9!{P;N;D;};N;ba' myfile.txt

Можно также использовать sed для первых 15:

sed '1,15d' myfile.txt
4
ответ дан 3 December 2019 в 16:11
поделиться

Какой сказанный jbourque является абсолютно правильным. Он просто не был слишком многословен об этом:

cat myfile.txt | tail -n +15 | head -n -9
2
ответ дан 3 December 2019 в 16:11
поделиться

Если можно распознать последние 9 строк отличительным шаблоном для первой из тех строк, то простое sed команда добилась бы цели:

sed -e '1,15d' -e '/distinctive-pattern/,$d' $file

Если Вам нужно чистое числовое смещение от нижней части, стандарт (в противоположность GNU) sed не поможет, но ed был бы:

ed $file <<'!'
1,15d
$-8,$d
w
q
!

Это перезаписывает исходные файлы. Необходимо было бы написать сценарий, где файл записан в то, если Вы хотели избежать этого.

2
ответ дан 3 December 2019 в 16:11
поделиться

Это должно также работать и делает вещи в единственном процессе:

seq 15 | 
awk -v N=5 '
  { lines[NR % N] = $0 } 
  END { i = NR-N+1; if (i<0) i=0; for (; i <= NR; ++i) print lines[i % N] }'

( seq просто простой способ произвести некоторые данные тестирования.)

0
ответ дан 3 December 2019 в 16:11
поделиться

head команда должна сделать то, что Вы хотите. Это воки точно так же, как tail но от другого конца файла.

0
ответ дан 3 December 2019 в 16:11
поделиться
Другие вопросы по тегам:

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