Как сказал Кусалананда, в каждой строке есть 6 полей, так что вы можете попробовать этот gnu sed.
sed -E ':A;h;s/^/,/;s/((,[^,]+){6})(.*)/\3/;/./{g;N;s/\n//;bA};g' infile
Я понял это благодаря предложениям @Kusalananda и @Paul _Pedant.
При использовании ls -l
вывод выглядит следующим образом:
drwxr-xr-x 2 francis francis 4096 Feb 15 2019 bin
drwxrwxr-x 3 francis francis 4096 Jan 16 2019 builds
drwxr-xr-x 8 francis francis 4096 Nov 15 10:00 Desktop
drwxr-xr-x 2 francis francis 4096 Aug 21 11:37 Documents
drwxr-xr-x 6 francis francis 20480 Nov 21 10:57 Downloads
drwx------ 23 francis francis 4096 Nov 21 10:57 Dropbox
drwxrwxr-x 3 francis francis 4096 Apr 11 2019 'VirtualBox VMs'
Каталог «VirtualBox VMs» цитируется как ls
(, вероятно, потому, что в его имени есть пробел). И похоже, что ls
выравнивает вывод, так что начальные кавычки имеют свой собственный выделенный столбец.