Комментарий Тома Ханта уже должен ответить на ваш вопрос, но на всякий случай, если ваш dhcpcd
не сможет самостоятельно исследовать доступные интерфейсы (что уже является проблемой), вы можете написать простую однострочку, как это:
sudo dhcpcd $ (ip l | sed -n 's/. *\( enp0s20u [0-9] *\):. */\1/p')
Затем можно сохранить эту строку в файл и вызвать ее в любое время. Однако это не является удовлетворительным, поскольку этот тип инициализации должен выполняться автоматически при входе в систему.
-121--145324-
Вот сценарий в perl
, который делает это. Выполнение только команд прокладки трубопроводов в командной строке невозможно или невозможно. Наивный подход был бы
perl -npe 's/\b|\s+/\n/g' < My.java | grep '^[A-Z]\+_[A-Z_]\+'
, но сценарий ниже лучше:
#!perl -w
my $content = do { local $/; <> };
my @tokens = split /\b|\s+/, $content;
my $n = 0;
my $skip;
foreach (@tokens) {
$n++; $skip = 0;
next if /\s+/;
next if /"/ ... /"/; # skip strings
next if /\(/ .. /\)/; # skip parameters
next if /@/ .. /^\w+$/; # skip annotations
$skip ||= 1 if $n == 1 .. /\benum\b/; # skip from beginning to enum
$skip ||= 1 if /enum/ .. /\{/; # skip to open bracket
next if $skip;
last if /\}/;
print $_, "\n";
}
-121--243364-
Вы вообще не можете. Mac OS X обычно не учитывает регистр.
На самом деле это настройка для каждого раздела, AFAIK устанавливается при форматировании раздела. Если вы решите, что вам это нужно, я предлагаю создать образ диска с учетом регистра для хранения этих файлов.
(Вы также можете узнать о другом сайте в сети Stack Exchange, Спросите другое - предполагая, что вы еще не слышали о них)
Использование GNUsed
:
for sql in backup/*.sql; do
sed -i '1i\use my_db;' "$sql"
done
Со стандартнымsed
:
for sql in backup/*.sql; do
sed '1i\
use my_db;
' "$sql" >"$sql.bak" && mv "$sql.bak" "$sql"
done
Это будет выполнять редактирование в -месте каждого .sql
файла в backup
. Команда редактирования вставляет строку перед первой строкой в каждом файле.
Предполагается, что шаблон backup/*.sql
соответствует только тем файлам, которые вы хотите отредактировать.
Использование echo
иcat
:
for sql in backup/*.sql; do
{ echo 'use my_db;'; cat "$sql"; } >"$sql.tmp" && mv "$sql.tmp" "$sql"
done
В этом цикле мы сначала выводим строку, которую хотим добавить в начало файла, а затем содержимое файла. Это переходит во временный файл, который затем переименовывается.
Команда
echo 'use my_db;' >> backup/*.sql
расширится до чего-то вроде
echo 'use my_db;' >> backup/file1.sql backup/file2.sql backup/file3.sql
, что совпадает с
echo 'use my_db;' backup/file2.sql backup/file3.sql >> backup/file1.sql
, который добавит заданные строки к backup/file1.sql
.
Ваша вторая команда не будет изменять никакие файлы.
sed -i '1 i\use my_db' backup/*.sql
sed -i
Сохраните изменения в файлах, не записывайте их в stdout
.
1
-Когда sed
находится в первой строке.
i
-Вставьте следующую строку.
backup/*.sql
Файлы, для которых sed
будет выполняться.
Вы можете просмотреть каждый файл в этой папке.
for item in $(ls backup/ | grep "*.sql")
do
echo "use my_db;" >> $item
done