独自の「カスタム」ロールの作成/使用

独自の「カスタム」ロールの作成/使用

使用できる独自のASCII文字を作成することは可能ですか?では、どうすればよいですか?

#12345今私のユースケースは次のとおりです。役割を作成し、私が作成したいくつかのスクリプトのカスタムログを生成し、各フィールドを新しい役割に分割したいとします。たとえば、次のようになります。

ID #12345 Host #12345 User #12345 Message #12345 Timestamp
1 #12345 host1 #12345 user1 #12345 This user did this this and that #12345 11:11:11
2 #12345 host1 #12345 user2 #12345 This other user did this new thing #12345 11:11:51

だから私がカスタム文字を望む理由は、各フィールドのテキストにすべての文字を含めることができることを望み(そして私のカスタム文字がある可能性はほとんどありません)、何awk -F '#12345' '{print $4}'に関係なくメッセージでawkを使用して簡単に操作できますあるからです。実際にはメッセージにありますが、キーと値のペア,の間にあり、メッセージにもある可能性が,あるため、通常はjson形式の出力に問題があります。

私の質問は「jsonを解析する方法」ではないので冗長ではなく、私のユースケースにすぎません。私の質問は、私が使用できるカスタム文字を作成することです。

ベストアンサー1

特定の質問に対する可能な唯一の答えは「いいえ。ASCII文字は0〜127の値を持つ事前定義された7ビット文字セットであり、各値には特定の意味が割り当てられています。追加または変更する範囲はありません。それらを」。

しかし、それはあなたが本当に尋ねたい質問ではないようです。すべての入力データに対して動作が保証される一意の区切り文字があるかどうか(または存在できるかどうか)を知りたいです。

通常、答えは「いいえ」です。不可能で存在しません。

ただし、特定の状況(つまり、既知または簡単に見つかった特性を持つ入力データ)では、データフィールドで見つけることができないか不可能であることを保証する文字を見つけることが可能な場合がよくあります。

ほとんどの人はTABを「データに表示できない」区切り文字として使用します。 :コロンが一般的に使用される時間フィールドやその他のデータがない場合は、広く使用されています(例:/ etc / passwd)。そして、カンマはさまざまな状況で使用できます。

一部の人は正しい形式のCSV(例:そして区切り文字を含むことができる文字列フィールドの周囲には引用符があります。他のものはJSON、XML、またはその他の構造化テキスト形式を使用します。ここでデータを正確に抽出するには、良いパーサーが必要です。

理論的には、bashでそのようなパーサーを書くことができます。実際には実際には望んでいません。作業に適したツールを使用するよりもはるかに多くの作業が必要です。あるいは、遅くて非常に限られた良いパーサーを書くよりも、正しい言語(C、Perl、またはPython)を使用するよりもはるかに多くの作業が必要です。 bashのような言語)


追加情報:他の質問では、bashスクリプトで「サードパーティツール」を使用する際に問題があると思うようです。それは本当ではありません。シェルスクリプトは、さまざまなサードパーティツール間の「接着剤」と「調整者」として機能します。これがsh / bashがうまくいくことです。

おすすめ記事