Не удается добавить комментарий.
Попробуйте использовать arandr
, это всего лишь графический интерфейс, но он может быть очень полезен.
Также когда у меня была похожая проблема на ноутбуке ubuntu xrandr guide помог мне.
И awk-решение
awk 'BEGIN{FS=OFS=""}{f=0;for(i=407;i<=415;i++){if($i!~/0-9/){f=1}};if(f){for(i=407;i<=415;i++){$i=0}};print }' fixed
Мы определяем разделитель полей как пустой, каждый символ является полем. Затем мы устанавливаем флаг f
для каждой записи равным 0 (предполагаем числовое ). Мы сравниваем символы 407 -415 с /0 -9/. Если какие-либо не совпадают, мы устанавливаем f равным 1. Затем, если f=1, мы заменяем все 9 символов на 0 и печатаем строку.
Поскольку эти другие ответы кажутся мне сложными, вот один простой sed
один -лайнер:
sed -E '/^.{406}[0-9]{9}/!s/(.{406}).{9}/\1000000000/'
Расширенная (опция-E
)регулярное выражение ^.{406}[0-9]{9}
соответствует строкам (Я предполагаю, что одна запись — это одна строка, в противном случае добавьте опцию -z
в GNU sed
), которая начинается(^
)с 406 случайные символы (.{406}
), за которыми следуют девять числовых символов, таким образом, от 407 до 415 все цифры, поэтому для обратного совпадения(!
)первые 406 символов остаются(\1
в замене обозначают первую ()
часть )и следующие девять символов заменяются нулями.
Обратите внимание, что поскольку вы запрашиваете обработку текста, это обработка текста, а не обработка байтов. Мульти -Байтовые символы считаются как один символ, а не как два байта