次の情報を含むデータファイルがあります。
977.txt:[email protected]
977.txt:[email protected]
980.txt:[email protected]
982.txt:[email protected]
985.txt:[email protected]
987.txt:[email protected]
987.txt:[email protected]
991.txt:[email protected]
991.txt:[email protected]
991.txt:[email protected]
994.txt:[email protected]
995.txt:[email protected]
999.txt:[email protected]
以前にすべてを削除したい:ディレクトリ内のすべてのファイルに対してこれを行う方法(Linux)。
私はこれを試しましたが、うまくいきますが、複数のファイルには使用できません。
grep -o - '[[:alnum:]+\._\-]*@[[:alnum:]+\._\-]*' file.txt
答え1
別のsed
解決策。
$ sed -n 's/[^:]*\://p' infile
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
$
-i
ディレクトリツリーでファイルを内部編集および再帰的に編集するために、そのオプションを使用するように簡単に拡張できます。find
答え2
単一のディレクトリにあるすべてのファイルの先頭を削除するには、次の手順を実行します。
sed -i -r 's/^[0-9]+\.txt://' *
まず、ファイルのコピーをいくつかテストしてみてください。
答え3
関連するファイル数やディレクトリの深さによっては、いくつかのエラーが発生する可能性がありますが、ファイル数が少ない場合は正常に動作します。
printf '%s\n' 'g/^.*:\(.*\)/s//\1/' w q | ed -s *