2016-12-17 3 views
0

У меня есть .txt файл, содержащий список, содержащий хэш и пароль, так что выглядит это нравится:Как получить строку из простой текстовый файл

00608cbd5037e18593f96995a080a15c:9e:hoboken 
00b108d5d2b5baceeb9853b1ad9aa9e5:1c:wVPZ 

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

hoboken 
wVPZ 
etc 
etc 
etc 
etc 

Как сделать это в bash, язык сценариев или просто с помощью текстового редактора?

+4

кажется ваш список имеет 3 информации, а не два, если они разделены ':'. [Вот очень похожий вопрос] (http://stackoverflow.com/questions/918886/how-do-i-split-a-string-on-a-delimiter-in-bash), который должен помочь вам в bash разделить строки в текстовом файле. После этого вам нужно сохранить, если в новый файл (можно использовать что-то вроде 'echo >>/path/file'). Удачи. – Tom

+0

Пожалуйста, взгляните на: [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) – Cyrus

ответ

3

Учитывая ваши примеры, используются следующие cut бы добиться того, чего вы хотите:

cut -f3 -d':' /folder/file >> /folder/result 

Код выше будет удалить что-либо до (и включая) второй двоеточие : на каждой строке, которая будет работать на вашем случай, учитывая ваши примеры. Результат сохраняется на /folder/result.

Редактировать: Я отредактировал этот ответ, чтобы сделать его проще.

+0

спасибо soooo muchk, ​​я так много узнаю об этом сообществе через таких людей, как сам! – n00bpr00f

2

Я предлагаю использовать AWK, чтобы всегда последний столбец из файла:

awk -F ':' '{print $NF}' file 

Выход:

 
hoboken 
wVPZ 
+0

Интересный подход, я проголосовал за вас. По правде говоря, ваш ответ может быть неправильным, потому что мы не знаем, всегда ли пароль в последнем столбце - возможно, в некоторых строках у нас может быть дополнительный финальный столбец, поэтому пароль не будет восстановлен. С другой стороны, мой ответ предполагает, что строки перед паролем будут иметь только ':' как разделитель и никогда не на самой строке, что также может быть неверным. Ах .. Я люблю такие реальные вопросы жизни, с ограниченной/неадекватной информацией, они сложны и заставляют вас задуматься. –

+0

@JamilSaid: Да, вопрос может быть уточнен.Возможно, вторая колонка - это своего рода [соль] (https://en.wikipedia.org/wiki/Salt_%28cryptography%29). – Cyrus

2

С СЕПГ, чтобы удалить строку до ::

sed 's/.*://' file 
1

Вы также можете использовать grep:

$ grep -o [^:]*$ file 
hoboken 
wVPZ 
  • -o печать только соответствие часть
  • [^:] ничего, кроме :
  • * все соответствующие символы
  • $ конец записи
+0

спасибо вам большое, я так многому научился в этом сообществе через таких людей, как вы! Спасибо всем!! – n00bpr00f