Скрипт форматирования кода по столбцам

Я исправил это. Я в основном перечислил все свои загрузчики с

efibootmgr

что дало мне

BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0001,3001,0002,2001,2002,2004
Boot0001* GRUB
Boot0002* grub_uefi
Boot2001* EFI USB Device
Boot3001* Internal Hard Disk or Solid State Disk

Я хотел удалить GRUB, поэтому я сделал

sudo efibootmgr -b 0001 -B

И это сработало. Теперь efibootmgr -vпоказывает

BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,3002,2001,2002,2004
Boot0002* grub_uefi     HD(3,GPT,-redacted-,0x30000000,0x100000)/File(\EFI\grub_uefi\grubx64.efi)
Boot2001* EFI USB Device        RC
Boot3002* Internal Hard Disk or Solid State Disk        RC
0
28.11.2020, 06:19
3 ответа

Это даст вам ожидаемый результат

Файл.txt:

self.colorOfBackground =? colorOfBackground
self.colorOfLineForTime =? colorOfLineForTime
self.marginOnBottom =? marginOnBottom
self.marginOnTop =? marginOnTop

При использовании следующей команды:

sed 's/^[[:blank:]]*//' File.txt | column -t -s "  "

Эта команда удалит пробелы в интерфейсе:sed 's/^[[:blank:]]*//'обратитесь к этому вопросу о переполнении стека, подробно объясненном на примере, что на самом деле делает команда переполнение стека:нажмите _здесь

Синтаксис:column -t [-s separator] [filename] -> column -t -s " "

–t :параметр для отображения содержимого в табличном формате

-s :Для разделения содержимого на основе определенного разделителя

Вывод команды:

self.colorOfBackground   =?  colorOfBackground
self.colorOfLineForTime  =?  colorOfLineForTime
self.marginOnBottom      =?  marginOnBottom
self.marginOnTop         =?  marginOnTop

Убедитесь, что перед использованием вышеуказанной команды просто выровняйте все данные в файле по левой стороне, чтобы выровнять данные, которые я использовал:sed 's/^[[:blank:]]*//'

2
18.03.2021, 22:46

Несмотря на то, что вы уже приняли ответ, желаемый результат можно получить с помощью всего одной команды awkили sedбез необходимости передавать его в команду column.

awk '{print $1"\t\t"$2"\t\t"$3}' column.txt

sed -e 's/^[[:blank:]]*//' -e 's|\s|\t\t|g' column.txt

Команда sedсначала удаляет все пробелы в начале каждой строки, а затем преобразует все оставшиеся пробелы в две табуляции. Это дает этот результат:

self.colorOfBackground          =?              colorOfBackground
self.colorOfLineForTime         =?              colorOfLineForTime
self.marginOnBottom             =?              marginOnBottom
self.marginOnTop                =?              marginOnTop

Команда awkпечатает только первый столбец, который представляет собой строки, начинающиеся с self, а затем печатает две вкладки, второй столбец, который имеет значение =?, еще две вкладки и, наконец, строку в третьем столбце..

self.colorOfBackground          =?      colorOfBackground
self.colorOfLineForTime         =?      colorOfLineForTime
self.marginOnBottom             =?      marginOnBottom
self.marginOnTop                =?      marginOnTop

Чтобы отредактировать сам файл, а не отправлять его на стандартный вывод, используйте один из следующих способов::

sed -i -e 's/^[[:blank:]]*//' -e 's|\s|\t\t|g' column.txt 

awk -i inplace '{print $1"\t\t"$2"\t\t"$3}' column.txt

Команда awkтребует, чтобы версия 4.2 или более поздняя имела переключатель -i inplace.

2
18.03.2021, 22:46

Все, что вам нужно, это:

$ column -t file
self.colorOfBackground   =?  colorOfBackground
self.colorOfLineForTime  =?  colorOfLineForTime
self.marginOnBottom      =?  marginOnBottom
self.marginOnTop         =?  marginOnTop

или, если хотите,:

$ column -t -o'    ' file
self.colorOfBackground     =?    colorOfBackground
self.colorOfLineForTime    =?    colorOfLineForTime
self.marginOnBottom        =?    marginOnBottom
self.marginOnTop           =?    marginOnTop

$ column -t -o$'\t' file
self.colorOfBackground  =?      colorOfBackground
self.colorOfLineForTime =?      colorOfLineForTime
self.marginOnBottom     =?      marginOnBottom
self.marginOnTop        =?      marginOnTop

$ column -t -o$'\t\t' file
self.colorOfBackground          =?              colorOfBackground
self.colorOfLineForTime         =?              colorOfLineForTime
self.marginOnBottom             =?              marginOnBottom
self.marginOnTop                =?              marginOnTop

Подберите columnаргументы.

2
18.03.2021, 22:46

Теги

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