Почему `ls` добавляет начальный пробел к своему выводу для определенных каталогов?

Как сказал Кусалананда, в каждой строке есть 6 полей, так что вы можете попробовать этот gnu sed.

sed -E ':A;h;s/^/,/;s/((,[^,]+){6})(.*)/\3/;/./{g;N;s/\n//;bA};g' infile
3
22.11.2019, 12:12
1 ответ

Я понял это благодаря предложениям @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выравнивает вывод, так что начальные кавычки имеют свой собственный выделенный столбец.

8
27.01.2020, 21:12

Теги

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