Путь на Perl:
perl -ne '$.<3?($f.=$_):print;}{print $f'
Или то же самое, написанное менее загадочно:
perl -ne 'if($.<3){ $f.=$_ } else{ print } END{print $f}'
Например:
$ cat file
44444
55555
11111
22222
33333
$ cat file | perl -ne '$.<3?($f.=$_):print;}{print $f'
11111
22222
33333
44444
55555
-ne
: читать входной файл / поток построчно и примените сценарий -e
к каждой строке. $. <3
: $.
- это номер текущей строки, поэтому измените 3
на количество строк, которое вы хотите переместить. $. <3? ($ F.= $ _): print;
: это условный оператор, общий формат - условие? case1: case2
, он запустит case1
, если условие
истинно, и case2
, если оно ложно. Здесь, если номер текущей строки меньше 3, он добавляет текущую строку ( $ _
) к переменной $ f
и, если номер строки больше 3, он печатает. } {print $ f
: } {
- это сокращение Perl для END {}
. Он будет запущен после обработки всех входных строк. На этом этапе мы соберем все строки, которые хотим сдвинуть, и напечатаем все те, которые хотим оставить в покое, поэтому распечатайте строки, сохраненные как $ f
. Кажется, Apple предлагает разработчикам приложений использовать это для своих приложений, см. man:
DESCRIPTION
The sandbox-exec command is DEPRECATED.
Developers who wish to sandbox an app should instead adopt the App Sandbox
feature described in the App Sandbox Design Guide.
На мой взгляд, это дезинформация и отсутствие зрелости в области безопасности со стороны Apple, чтобы удалить опцию безопасности от пользователей и рекомендовать ее только разработчикам.
В прошлом мы видели, что редкое меньшинство обычно стремится к улучшению безопасности, в то время как средний разработчик рассматривает безопасность как препятствие, а не как добавленную стоимость.
Apple следует пересмотреть свою позицию и повторно -включить политики приложений, -управляемые пользователями. Особо не отключали, просто сильно усложнили с удалением песочницы -упростить.
грустно грустно Apple, возьми себя в руки