Поскольку вы, кажется, незнакомы со сценариями, вот пример.
#!/bin/sh
# usage: svn st | x 2 | xargs rm
col=$1
shift
awk -v col="$col" '{print $col}' "${@--}"
Если вы сохраните это в ~/bin/x
и убедитесь, что ~/bin
находится в вашем PATH
(теперь это то, что вы можете и должны вставить в свой .bashrc
), у вас будет кратчайшая команда для общего извлечения столбца n ; х н.
Скрипт должен выполнять правильную проверку ошибок и залог, если вызывается с нечисловым аргументом или с неверным количеством аргументов и т. Д .; но расширение этой основной версии будет в блоке 102.
Возможно, вы захотите расширить скрипт, чтобы разрешить другой разделитель столбцов. Awk по умолчанию анализирует ввод в поля на пробелах; чтобы использовать другой разделитель, используйте -F ':'
, где :
- новый разделитель. Реализация этого в качестве опции для скрипта делает его немного длиннее, поэтому я оставляю это как упражнение для читателя.
Использование
Данный файл file
:
1 2 3
4 5 6
Вы можете передать его через стандартный ввод (используя бесполезный cat
просто в качестве заполнителя для чего-то более полезного);
$ cat file | sh script.sh 2
2
5
Или предоставить его в качестве аргумента сценария:
$ sh script.sh 2 file
2
5
Здесь sh script.sh
предполагает, что скрипт сохранен как script.sh
в текущем каталоге; если вы сохраните его с более полезным именем где-нибудь в вашем PATH
и отметите его как исполняемый, как в приведенных выше инструкциях, очевидно, вместо этого используйте полезное имя (а не sh
).