이 열을 정렬하려고 합니다.
super+t sticky toggle
super+Shift+space floating toggle
super+Shift+r restart
super+Shift+d mode $mode_launcher
super+Shift+c reload
super+r mode resize
super+Return i3-sensible-terminal
super+q kill
super+n Nautilus scratchpad show
super+m neomutt scratchpad show
super+minus scratchpad show
super+f fullscreen toggle
super+c bar mode toggle
super+button2 kill
super+alt+x systemctl -i suspend
super+alt+v cmus
super+alt+m neomutt
super+alt+c ~/bin/editinvim
super+alt+b ranger
사용해 보았 awk
으나 운이 없었습니다. 선호하는 형식은 다음과 같습니다
super+Shift+d mode $mode_launcher
super+alt+c ~/bin/editinvim
super+alt+b ranger
답변1
또는 이 명령을 column -t
사용하여 열의 텍스트 서식을 지정할 수 있습니다.
column -t file
기본 열 구분 기호는 입니다 " "
. 예제에서 행에는 여러 개의 공백이 있지만 첫 번째 공백만 열을 구분합니다. 첫 번째 공백을 ":"으로 바꾸고 이를 구분 기호로 사용할 수 있습니다.
$ sed 's/ /:/1' file | column -s ':' -t
super+t sticky toggle
super+Shift+space floating toggle
super+Shift+r restart
super+Shift+d mode $mode_launcher
...
답변2
적절하게 넓은 필드에 왼쪽 정렬된 첫 번째 열을 다시 인쇄할 수 있습니다.
$ awk '{$1 = sprintf("%-30s", $1)} 1' file
super+t sticky toggle
super+Shift+space floating toggle
super+Shift+r restart
super+Shift+d mode $mode_launcher
super+Shift+c reload
super+r mode resize
super+Return i3-sensible-terminal
super+q kill
super+n Nautilus scratchpad show
super+m neomutt scratchpad show
super+minus scratchpad show
super+f fullscreen toggle
super+c bar mode toggle
super+button2 kill
super+alt+x systemctl -i suspend
super+alt+v cmus
super+alt+m neomutt
super+alt+c ~/bin/editinvim
super+alt+b ranger
열 1의 길이를 기준으로 적절한 너비를 자동으로 선택하려면 다음을 수행하십시오.
awk '
NR==FNR {w = length($1) > w ? length($1) : w; next}
{$1 = sprintf("%-*s", w+4, $1)}
1
' file file