подстановка команд заключена в двойные кавычки в (t) csh (который вы, кажется, используете), как в оболочках типа Борна.
Итак, в:
alias search "find `pwd` -name "
Вы фактически делаете что-то вроде:
alias search 'find /some/dir -name '
Где / some / dir
был текущим каталогом на момент выполнения команды alias
.
Здесь вы хотите:
alias search 'find $cwd:q -name'
$ cwd
автоматически устанавливается tcsh
(как и $ PWD
в современных версиях, например, в оболочках POSIX), поэтому вы можно использовать его вместо менее эффективного и менее надежного `pwd`
.
Мы используем одинарные (строгие) кавычки, чтобы не раскрывать внутри $ cwd
.
$ cwd: q
- передать значение переменной как один аргумент, а не позволить ему разделиться.
Также обратите внимание, что вам не нужен пробел после -name
выше.
Если вы хотите использовать pwd
(например, чтобы получить канонический (без символических ссылок) путь к текущему рабочему каталогу, как в некоторых реализациях pwd
, таких как GNU) когда POSIXLY_CORRECT
не находится в среде), вы должны использовать:
alias search 'find "`pwd`" -name'
Хотя это не сработает, если путь к текущему каталогу содержит символы новой строки.
Обратите внимание, что вы не можете использовать sudo search
, поскольку псевдонимы раскрываются только в позиции команды в (t) csh. В оболочках POSIX вы можете:
alias sudo='sudo '
Сообщать оболочке, что слово, следующее за sudo
, также должно подвергаться расширению псевдонима, но этот трюк не работает в (t) csh.
Эквивалент POSIX sh
(или bash
/ zsh
/ ksh
...) будет иметь следующий вид:
alias search='find "$PWD" -name'
-121) --- 57925- Этот сценарий awk
должен помочь вам начать работу:
BEGIN { FS = "," }
$1 {
if ($1 == "end_" tablename) {
exit 0;
} else if ($1 == "start_" tablename) {
in_table = 1;
} else if ($1 == tablename) {
count = split($0, columns);
}
next;
}
in_table {
for (i = 2; i <= NF; i++) {
values[i] = values[i] "," $i;
}
}
END {
for (i = 2; i <= count; i++) {
if (columns[i]) {
print columns[i] " - " substr(values[i], 2);
}
}
}
Назовите его так:
awk -f config.awk -v tablename=interfaces_setup config.csv