Играя с awk
я пришел казнить:
ls -la >> a.txt ; awk {'print $5 $1'} a.txt ;
Это дает вывод как:
53277-rw-------
52347-rw-------
Как я могу получить пробел между этими двумя друзьями вывода?
command-line
text-processing
awk
rɑːdʒɑ
источник
источник
ls
. Это рано или поздно укусит вас в спину.print $5 $1
awk {'print $5 $1'} a.txt
). Они спрашивают, как поместить пробел между полем № 1 и полем № 5.Ответы:
Просто измените строку на
это должно напечатать вывод с пробелами.
Надеюсь это поможет.
Редактировать:
Как предлагает McNisse, вы можете использовать printf, который обеспечит вам хороший выходной формат
источник
printf
Функция обеспечивает лучший контроль, особенно если вы хотите форматирование чисел.printf("%s\t%s\n", $5, $1)
5s
значит вawk {'printf ("%5s\t%s\n", $5, $1)'}
Еще один специфичный для awk метод, использующий «разделитель поля вывода»
Запятая имеет решающее значение здесь.
источник
$1
чтобы перейти на новуюПростой способ получить вкладки:
источник
Я знаю, что это старая ветка, но я только учусь и считаю эти посты полезными. Моим лучшим решением было использовать gawk для вставки пробелов между переменными для вас.
источник
gawk
,mawk
или любой другойawk
, они все вставляют пробелы, если вы используете запятую, о чем говорит этот ответ .ls -la | awk '{print $1, $9}'
. Как сказал Муру,gawk
нет необходимости.Чтобы разместить пробел между аргументами, просто добавьте
" "
, напримерawk {'print $5" "$1'}
.Однако не рекомендуется анализировать выходные данные
ls
команды , так как это ненадежно, а выходные данные предназначены для людей, а не для сценариев. Поэтому используйте альтернативные команды, такие какfind
илиstat
.Вот пример использования GNU
stat
:которая выведет вам удобный для машин вывод (в краткой форме), так что вы сможете получить именно то, что вам нужно. Затем используйте
-c
для использования определенного формата, или используйтеawk
,cut
или,read
чтобы получить правильные столбцы.Проверьте
stat --help
для дальнейших вариантов. Например, чтобы напечатать день модификации, проверьте этот пример .источник
for i in ls; do $i
).