2011-07-13 7 views
6

私はJavaプログラマです。テキスト処理のためにbashスクリプトをたくさん使用しています。テキスト/文字列処理のためのJavaライブラリsimularからunix/linuxユーティリティ

grep、sed、awk、tr、wc、findのようなユーティリティは、コマンド間のパイプ処理とともに、このような強力な組み合わせを提供します。

しかし、bashプログラミングでは、移植性、テスト容易性、Javaに存在するより洗練されたプログラミング構造が欠けています。また、他のJava製品との統合も難しくなります。

私が探しているものを提供してくれるJavaのテキスト処理ライブラリが誰か分かっているのだろうかと思っていました。

書くことができてとてもクールになる:

Text.createFromFile("blah.txt).grep("-v","ERROR.*").sed("s/ERROR/blah/g").awk("print $1").writeTo("output.txt") 

これはパイ・イン・イン・ザ・スカイものかもしれません。しかし、とにかくそこに質問を載せると思った。

答えて

2

Unix4jは、いくつかの基本的なUNIXは、主に(コマンドとの間の配管をサポートして)テキスト処理に焦点を当てて、コマンドを実装しています:http://www.unix4j.org

例(ベンの例が、これは現在サポートされていないようなawkなし):

Unix4j.fromStrings("1:here is no error", "2:ERRORS everywhere", "3:another ERROR", "4:nothing").toFile("blah.txt"); 
Unix4j.fromFile("blah.txt").grep(Grep.Options.v, "ERROR.*").sed("s/ERROR/blah/g").toFile("output.txt");  
Unix4j.fromFile("output.txt").toStdOut();  

>>> 
1:here is no error 
4:nothing 

注:

  • 質問の著者はunix4jプロジェクトに関与している
2

それを信じているかどうかは分かりませんが、私はこれらのタスクの多くに埋め込みAntを使用しました。


更新

Antは、それがJavaプロジェクトから呼び出すことができるようにするJava APIのを持っています。これは埋め込みモードです。これはAnd Api 1.6.1への参照です。配布にはドキュメントも含める必要があります。

これを使用するには、新しいタスクオブジェクトを作成し、適切なパラメータを設定し、build.xmlの場合と同様にJava Apiを使用して実行します。あなたの仕事を実行するよりも。

何か

ReplaceRegExp regexp = new ReplaceRegExp(); 
regexp.setMatch("bla"); 
regexp.setFile(new File("inputFile")); 
regexp.execute(); 

のようなあなたにもいくつかの他のものを設定する必要があるかもしれません。

あなたの問題を解決するかどうかはわかりませんが、Antには多くのコードがあります。ドキュメントを検索するだけです。

+0

こんにちはアレックス、あなたは埋め込みAntの意味を説明できますか?乾杯、B – Ben

+0

こんにちはベン、私は私の答えを更新しました。がんばろう! –

+0

こんにちはアレックス。ありがとう、それは知っていることは非常に良いです。 – Ben

関連する問題