Удалить все все строки, кроме тех, которые заканчиваются строкой ".com"

Для стандартной ванильной Ubuntu с использованием Unity :CCSM :Диспетчер настроек CompizConfig на помощь:

sudo apt install compizconfig-settings-manager
  • Запустить CCSM
  • Перейдите к Управление окнами CCSM Main Window Management
  • Затем Разместить окна , вкладка Фиксированное размещение окон Fixed Window Placement
  • оба монитора представляют собой один большой экран, поэтому вычислите координату XY, которую вы хотите получить для каждого окна, в :
    • . если у вас 2 стандартных монитора VGA 640x480, второй монитор начинается с X=641, Y=1 если у вас нет Unity Launcher на втором мониторе, иначе X=641+42 (ширина лаунчера)
  • под пунктом списка Окна с фиксированными позициями , прес Новое
  • Возьмите имя окна или введите его вместе с координатами X и Y для каждого приложения, которое вы хотите расположить.
  • Вуаля :Готово

Для конкретного случая использования OP -они сделали эту работу автоматически, обнаружив добавленные дисплеи с помощью электронного screenAPI.

Важноapp.on('ready')состоянии, необходимом для работы API экрана, выполните следующие операторы:

const electron = require('electron');
electron.screen.on('display-added', (e,d) => { _reposition(); }

async function _reposition() { 
      const util = require('util'); 
      const exec = util.promisify(require('child_process').exec);
       const { stdout, stderr } = await setTimeout(() => { exec('compiz --replace') }, 5000); 
       console.log(stdout); console.log(stderr); 
}
}

0
01.02.2021, 14:41
4 ответа

Вы можете использовать grep для удаления ненужной строки:

grep -v '^[0-9][0-9]*\(\.[0-9][0-9]*\)\?$'

Немного более короткий эквивалент с использованием расширенных регулярных выражений:

grep -vE '^[0-9]+(\.[0-9]+)?$'

Если 0в 0.5является необязательным, вы можете использовать, например,

grep -vE '^([0-9]+(\.[0-9]+)?|^\.[0-9]+)$'
4
18.03.2021, 22:33

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

$ sed '/^[0-9]*\.*[0-9]*$/d' file
devdb.eu-central-1.rds.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com

3
18.03.2021, 22:33

Другое решение с использованиемawk:

awk '/\.com$/' file

Будут напечатаны только строки, заканчивающиеся на .com.

2
18.03.2021, 22:33

Глядя на ваш заголовок, " Удалить все, кроме всех строк, заканчивающихся строкой.com", это прямое использованиеgrep

Переверните условие, чтобы оно было " Сохранить все строки, заканчивающиеся строкой.com"

grep '\.com$' file

Команда grepсоответствует регулярным выражениям, а так как .является специальным символом для RE, (она соответствует любому одиночному символу ), который необходимо экранировать. Символ $связывается с концом -строки -.

4
18.03.2021, 22:33

Теги

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