Я пытаюсь скопировать значения переменной в буфер обмена из моего генератора паролей, но это не работает

Предположим, что в адресах электронной почты нет символов двоеточия. Для кучи файлов назовем их files*.txt:

cat files*.txt | sed -e 's/[^:]*://' > all-passwords.txt

Должно это сделать.

cat files*.txt - печатает все строки в STDOUT sed -e 's/[^:]*://' - заменяет все до первого ':' в строке «ничего» > all-passwords.txt - создайте / перезапишите файл с именем all-passwords.txt >> all-passwords.txt - если вы должны использовать [ f7], он будет создавать или добавлять к файлу, а не перезаписывать его.

Примечания:

cat files*.txt - печатает все строки в STDOUT
1
задан 3 May 2018 в 23:55

4 ответа

Так много всего, на что можно обратить внимание, но при условии, что ваш первоначальный вопрос заключается в сохранении вывода команды в качестве переменной.

Чтобы сохранить вывод (STDOUT) некоторых команды или конвейера в качестве переменной, вам нужно использовать подстановку команд ($()):

pass=$(head /dev/urandom | tr -dc 'A-Za-z0-9\!\"#$\@\&\%\?' | head -c "$length")

Я сделал два изменения:

вам не нужно быть [ f4], чтобы прочитать файл /dev/urandom, поэтому я уронил sudo, всегда добавляя расширения переменных (если вы не знаете, что делаете); Я цитировал $length

Кроме того, read может отображать строку приглашения (см. Опцию -p), вам не нужно использовать echo:

read -p 'How many characters?' length
2
ответ дан 22 May 2018 в 11:00
  • 1
    Я все еще новичок в этом, так что эхо-материал - это то, что мы узнали в школе. Помимо этого, похоже, проблема была исправлена ​​с помощью замены команды. – Eddie 3 May 2018 в 23:43
  • 2
    Поэтому, если подстановки команд там нет, она не сохраняет вывод в переменную, но echo " $ pass " почему? – Eddie 3 May 2018 в 23:50
  • 3
    @Eddie Что показалось echo $pass? Без подстановки команды, синтаксис кода, который вы использовали первоначально, покажет вам ошибку (ы). – heemayl 3 May 2018 в 23:56

Так много всего, на что можно обратить внимание, но при условии, что ваш первоначальный вопрос заключается в сохранении вывода команды в качестве переменной.

Чтобы сохранить вывод (STDOUT) некоторых команды или конвейера в качестве переменной, вам нужно использовать подстановку команд ($()):

pass=$(head /dev/urandom | tr -dc 'A-Za-z0-9\!\"#$\@\&\%\?' | head -c "$length")

Я сделал два изменения:

вам не нужно быть root, чтобы прочитать файл /dev/urandom, поэтому я уронил sudo, всегда добавляя расширения переменных (если вы не знаете, что делаете); Я цитировал $length

Кроме того, read может отображать строку приглашения (см. Опцию -p), вам не нужно использовать echo:

read -p 'How many characters?' length
2
ответ дан 17 July 2018 в 15:18

Так много всего, на что можно обратить внимание, но при условии, что ваш первоначальный вопрос заключается в сохранении вывода команды в качестве переменной.

Чтобы сохранить вывод (STDOUT) некоторых команды или конвейера в качестве переменной, вам нужно использовать подстановку команд ($()):

pass=$(head /dev/urandom | tr -dc 'A-Za-z0-9\!\"#$\@\&\%\?' | head -c "$length")

Я сделал два изменения:

вам не нужно быть root, чтобы прочитать файл /dev/urandom, поэтому я уронил sudo, всегда добавляя расширения переменных (если вы не знаете, что делаете); Я цитировал $length

Кроме того, read может отображать строку приглашения (см. Опцию -p), вам не нужно использовать echo:

read -p 'How many characters?' length
2
ответ дан 20 July 2018 в 15:44

Так много всего, на что можно обратить внимание, но при условии, что ваш первоначальный вопрос заключается в сохранении вывода команды в качестве переменной.

Чтобы сохранить вывод (STDOUT) некоторых команды или конвейера в качестве переменной, вам нужно использовать подстановку команд ($()):

pass=$(head /dev/urandom | tr -dc 'A-Za-z0-9\!\"#$\@\&\%\?' | head -c "$length")

Я сделал два изменения:

вам не нужно быть root, чтобы прочитать файл /dev/urandom, поэтому я уронил sudo, всегда добавляя расширения переменных (если вы не знаете, что делаете); Я цитировал $length

Кроме того, read может отображать строку приглашения (см. Опцию -p), вам не нужно использовать echo:

read -p 'How many characters?' length
2
ответ дан 23 July 2018 в 16:15

Другие вопросы по тегам:

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