Web lists-archives.com

Re: Taming the "lsblk" command




On Wed 09 Jan 2019 at 16:13:19 (+0000), mick crane wrote:
> On 2019-01-09 14:14, David Wright wrote:
> > On Wed 09 Jan 2019 at 13:54:45 (+0000), Curt wrote:
> > > On 2019-01-09, rhkramer@xxxxxxxxx <rhkramer@xxxxxxxxx> wrote:
> > > > On Wednesday, January 09, 2019 03:01:42 AM Richard Hector wrote:
> > > >> On 9/01/19 6:04 PM, Jude DaShiell wrote:
> > > >> > lsblk -l -o name,label | sort | script
> > > >>
> > > >> lsblk -ln -o name,label |sort | <script>
> > > >
> > > > I'm not the OP, but I very much like the way you put script in angle brackets
> > > > to show that is a parameter (mcow) and not a literal value!!
> > > 
> > > I'll see that affection for mundane angle brackets and raise you the
> > > annoyance of not having received the vaguest clue as to what might be
> > > found literally inside them (the pertinent part, at the very least).
> > 
> > I don't think the OP told us what the script was, but just that they
> > want to pipe the output into "a script". Using angle brackets from the
> > start (or knowing that script itself is a program) would have avoided
> > the mess in the other subthread.
> 
> /usr/bin/script looks like it might be handy sometime ( didn't know
> about that )
> there's a line in the answers to clean up the output.
> https://superuser.com/questions/236930/how-to-clean-up-output-of-linux-script-command

That perl script is useful, so it might be worth posting here:

perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' < typescript | col -b | less

I just ran a typescript of an expert Debian installation over ssh, and
I think that's the best representation of curses screens I've seen,
short of using cut and paste.

But returning to lsblk, I can't figure out why the OP's lsblk -l
appears in such an odd order. Does it differ from that given by
lsblk with no arguments?

I've checked the unsorted order of my /sys/dev/block, which is
essentially random, as is the order of block devices in the output
of mount, yet lsblk gives me a nice sorted lists:

$ lsblk -o name
NAME
sda
├─sda1
├─sda2
├─sda3
├─sda4
├─sda5
├─sda6
├─sda7
├─sda8
│ └─swanhome
├─sda9
├─sda10
├─sda11
├─sda12
├─sda13
└─sda14
sdb
└─sdb1
  └─luks-b1b5d363-c048-40e6-8030-fed7a20e37ab
sdc
  └─sdc1
$ lsblk -o name -l
NAME
sda
sda1
sda2
sda3
sda4
sda5
sda6
sda7
sda8
sda9
sda10
sda11
sda12
sda13
sda14
sdb
sdb1
sdc
sdc1
swanhome
luks-b1b5d363-c048-40e6-8030-fed7a20e37ab
$ 

The disadvantage (to me) with external sorting is that the order
becomes alphanumeric instead of numerical (though a script could
work around that by splitting the name field).

Cheers,
David.