0

Macでbashまたはpythonを使用して、テキストファイル(テキストの例は次のとおりです)のユーザー名をmysqlデータベースに抽出するにはどうすればよいですか?

124dave87 10 months ago

:) ...Thank you for making this video.

Reply  ·

kateDVKH 1 year ago
@karluchii19 i'm still trying to figure out who you are?!?

Thanks for replying.
Reply  ·

shotwioke 3 months ago
hey how is everything going with your health-i hope/pray things are going good for you.God bless
Reply  ·   in reply to MrNickkaye (Show the comment)

たとえば、上記のテキスト ファイルの場合、スクリプトは次のように出力します。

124dave87    
kateDVKH    
shotwioke
4

5 に答える 5

1

これgrepを先読みすると、必要なものが得られます。

 grep -Po '^(\w+)(?=\s\d+\s\w+\sago$)' file
于 2013-04-09T20:00:04.253 に答える
1

私の理解が正しければ、行頭から始まり、最初のスペース文字で終わる文字列を探しています。そうですか?

もしそうなら、おそらく最速/最も簡単な方法は次のとおりです。

egrep -o "^[^ ]*"

編集(以下のコメントに基づく)

ここで探しているものを少し詳しく説明していただけますか? 本当の目的は?答えを組み立てるのに役立つかもしれません...

とはいえ、一意のユーザー名のリストを取得するだけの場合は、次のことを試してください。

egrep -o "^[^ ]*" | sort | uniq

スキーマで許可されている場合は、一意の制約をデータベース テーブルに追加することもできます。

于 2013-04-09T19:27:42.227 に答える
1
grep -E "[0-9]+ (month|year|day|week)s? ago" a.txt| grep -Eo "^[a-zA-Z0-9]+"

これは、awkまたはsedを使用して1つのステップで実行できると確信しています

于 2013-04-09T19:50:52.620 に答える
1

これawkはおそらく比較的理解しやすいでしょう:

awk '$0 ~ " [0-9]+ (month|year|day|week)s? ago" {print $1}'

行にパターンが含まれている場合は、最初の単語を出力します。にパイプしsort | uniqて、一意のユーザー名を取得します。

于 2013-04-09T19:55:54.687 に答える