Я бы использовал sed
для этого:
sed -E 's/, /\n/;s/([A-Z]{2}) /\1\n/' States
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
Первое выражение s /, / \ n /
ищет запятую, за которой следует пробел, и заменяет ее новой строкой.
Второе выражение s / ([A-Z] {2}) / \ 1 \ n /
ищет любые две заглавные буквы, за которыми следует пробел, и заменяет их этими буквами, за которыми следует новая строка.
sed --version
sed (GNU sed) 4.2.2
Проблема в том, что du
возвращает размер в количестве блоков по 512 байт.
Чтобы иметь размер в КБ, вы можете использовать параметр -k
, который вместо этого использует 1024-байтовые блоки:
$ du -ks .
43351596 .
$ du -khs .
41G .
du
без спецификатора выходного формата показывает использование диска в блоках по 512 байтов, а не килобайт . Вместо этого вы можете использовать параметр -k
для отображения в килобайтах. В OS X (или macOS, или MacOS, или Macos; в зависимости от того, что вам нравится) вы можете настроить единицу измерения по умолчанию, установив переменную среды BLOCKSIZE
(это также влияет на другие команды).