Как отредактировать только один столбец вывода из команды ls?

Скажем, когда я делаю команду ls, вывод:

file1 file2 file3 file4

Можно ли отобразить только определенный столбец вывода, в данном случае file2? Я пробовал следующее без успеха:

echo ls | $2

В основном все, что я хочу сделать, это эхо только второй столбец, в этом случае я хочу эхо:

file2
33 голоса | спросил John 18 12013vEurope/Moscow11bEurope/MoscowMon, 18 Nov 2013 09:34:46 +0400 2013, 09:34:46

1 ответ


30

Вы ищете следующее:

ls -C | awk '{ print $2 }'

Однако, предполагая, что вы попытаетесь использовать это имя позже, не делайте этого, так как оно будет разбиваться на имена файлов, содержащие пробелы. Вместо этого поместите файлы в массив и получите второй, что позволяет вообще не выполнять синтаксический анализ:

files=(*)
printf '%s\n' "${files[1]}"

Порядок возврата файлов зависит от значения LC_COLLATE. Таким образом, вы можете сначала установить LC_COLLATE=C, если вы хотите «стандартную» сортировку во всех угловых случаях.

ответил Chris Down 18 12013vEurope/Moscow11bEurope/MoscowMon, 18 Nov 2013 09:40:42 +0400 2013, 09:40:42

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132