2012-04-04 13 views
0

grepやsedを何度も試してみたいと思っています。誰かが助けてくれれば非常に感謝しています!アルナムで_または#を含む文字列を見つける

sysinternals strings.exeを使用してメモリダンプから取得した文字列の行が入力されたテキストファイルがあります。 私は今それの多くは役に立たないゴミであるように、個々の文字列に至るまで、このファイルをフィルタリングする必要があります(例:*/& 644; @)または1つのラインなどに取り付けた複数の文字列:

&644*/;@ 
string1 
string2;@%string3*£""^string4 

私が必要とする文字列英数字、アンダースコア(_)、ハッシュ(#)で構成できるので、string_string#1またはexamplestringまたはexample_stringです。

要約すると、上記の例を使用すると、string1、string2、string3およびstring4をフィルタリングできる必要があります。

答えて

1

それは正確に何をしたい明確ではないが、おそらくあなただけを探しています:

< path-to-text-file tr \; '\012' | tr -d -c 'A-Za-z0-9_#' 

これは、あなたがしたくないとセミコロンは改行に変換した文字をすべて削除します。

または多分あなたはちょうどあなたが単一の改行を無視する連続した文字のすべての列を変換します

< path-to-text-file tr -sc 'a-zA-Z0-9_#' '\012' 

をしたいです。

sed 's/[^[:alnum:]_#]\+/\n/g' dump > strings 

またはインライン、あなたのsedがそれをサポートしている場合:

sed -i 's/[^[:alnum:]_#]\+/\n/g' dump 
+0

ありがとうございます! 2番目のものは私が欲しかったものです。 – Twisted89

0

dが提案されます

grep -o '[[:alpha:]][[:alnum:]_#]*' 
0

あなたが(英数字の文字列である) "644" を除外したいので、私は」セッド

あなたが使用することができ
関連する問題