Теперь это работает, не совсем правильно, но нормально.
После настройки меню, мне удалось добраться до кнопки, где я мог включить бинарный протестированный драйвер nVidia. Компьютер упал, и после перезагрузки два экрана оказались на расширенном рабочем столе, но перевернутыми (пришлось идти влево, чтобы зацепить правый экран).
Я попытался зайти в "Дисплеи", который теперь работает, но не кнопка "применить" (ошибка говорит, что я не могу применить изменения).
Но затем я использовал эти команды (они не работали ранее, говоря о внутренней ошибке) :
xrandr --output DVI-I-0 --off
xrandr --output DVI-I-0 --auto --right-of HDMI-0
И теперь, ярлык терминала работает и мониторы находятся в расширенном режиме рабочего стола, все, что я просил. Я просто надеюсь, что ошибка в меню предпочтений не вызовет дальнейших проблем.
Se puede hacer por simple head
ytail
:
$ output=$(head -n -2 file ; echo 'new line' ; tail -2 file)
$ echo "$output" > file
Como se menciona en los comentarios, comerá cualquier línea en blanco final. Entonces, para preservar las líneas en blanco finales,
$ head -n -2 file >> file.tmp
$ echo 'new line' >> file.tmp
$ tail -2 file >> file.tmp
$ mv file.tmp file
o de una sola línea
$ head -n -2 file >> file.tmp ; echo 'new line' >> file.tmp; tail -2 file >> file.tmp ; mv file.tmp file
También podrías usar GNU sed
:
sed -zE 's/(\n[^\n]*){3}$/\nNew-line&/' infile
Insertar una línea New-line
en la penúltima línea del archivo (Insertar una línea dos líneas antes de la última línea ).
Esto (\n[^\n]*){3}$
coincide con \n
ewline seguido de cualquier cosa menos un \n
ewline y un máximo de 3 veces desde el final del archivo donde -z
opción casing sed para leer un archivo como un línea única (líneas separadas por caracteres NUL ). Entonces coincidirá a continuación solo (entre los asteriscos que resalté):
3*\n
4\n
5\n*
Portabilidad, usarías:
sed -e ':t;N;$!bt; s/\(\n[^\n]*\)\{2\}$/\nNew-line&/' infile
si aún su sed
no puede manejar una nueva línea \n
en la pieza de reemplazo, puede tener una nueva línea real o presionar Ctrl + V seguido de Ingrese que imprimirá ^M
caracteres de control de la tecla enter:
sed -e ':t;N;$!bt; s/\(\n[^\n]*\)\{2\}$/\
New-line&/' infile
El N
agrega cada línea sed leída al espacio del patrón seguido de una nueva línea agregada hasta que se lean todas las líneas. El :t
define una etiqueta y $!bt
le dice a sed que salte a la etiqueta llamada t
siempre que no sea el final del archivo.
sed -e '
1N
$!{N;P;D;}
H;g;s/^/NEW_LINE/
' input-data.txt
sed
Seguir awk
también podría ayudar.
awk -v line=$(wc -l < Input_file) -v val="new_line" 'FNR==(line-1){print val} 1' Input_file
Este debería ser bastante robusto contra el contenido de la línea insertada, pero requiere que el archivo se escanee dos veces(wc
para la primera pasada ).
sed "$(($(wc -l < yourfile)-$N))a"'new line' yourfile
tac input.txt | sed '2 a New line' | tac
Explicación
tac
-imprime líneas al revés, por lo que la última línea se convierte en la primera, la línea last - 1
se convierte en la segunda, etc. sed '2 a New line
-agregue New line
después de la segunda línea. tac
-invierte las líneas de nuevo. Prueba
$ tac <(seq 1 5) | sed '2 a New line' | tac
1
2
3
New line
4
5
Использованиеed
:
$ printf '$-1i\nNew line\n.\n,p\n' | ed -s file
1
2
3
New line
4
5
Сценарий редактирования ed
:
$-1i
New line
.
,p
Сначала выполняется переход к строке на одну строку вверх от конца($-1
)и вставка(i
)нового содержимого над этой строкой. Вставляемое содержимое заканчивается одиночной точкой (и может состоять из нескольких строк ). Последний ,p
отображает на терминале полностью измененный буфер.
Вы можете перенаправить это в новый файл или записать обратно в исходный файл, используя
printf '$-1i\nNew line\n.\nw\n' | ed -s file
(,p
меняется наw
).
Это последнее также то, как вы могли бы аналогичным образом использовать ex
для этой работы:
printf '$-1i\nNew line\n.\nw\n' | ex -s file
ed
и ex
являются стандартными строковыми -ориентированными редакторами (, в отличие от полноэкранных -редакторов ), которые должны поставляться с вашей системой. Обратите внимание, что -s
означает разные вещи для каждого, но подходит для обоих при выполнении задач редактирования в пакетном режиме, подобных этой.
ed
. «Шелл и утилиты». Базовые характеристики . IEEE 1003.1 :2017. Открытая группа. ex
. «Шелл и утилиты». Базовые характеристики . IEEE 1003.1 :2017. Открытая группа. Дополнительная литература: