0

私はgrepまたはsedを取得してやりたいことを何回か試みましたが、これまで失敗したので、誰かが助けてくれればとてもありがたいです!

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

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

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

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

4

3 に答える 3

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'

これは、無視したい連続する文字のすべてのシーケンスを1つの改行で変換します。

于 2012-04-04T13:12:17.090 に答える
0

sedを使用できます:

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

または、sedがサポートしている場合はインライン:

sed -i 's/[^[:alnum:]_#]\+/\n/g' dump
于 2012-04-04T13:28:38.053 に答える
0

「644」(英数字の文字列)を除外したいので、お勧めします

grep -o '[[:alpha:]][[:alnum:]_#]*'
于 2012-04-04T13:47:49.467 に答える