タグ付けされた質問 「text-processing」

プログラム、スクリプトなどによるテキストの操作または検査

6
無効なutf8のフィルタリング
不明または混合エンコードのテキストファイルがあります。UTF-8ではないバイトシーケンスを含む行を表示したい(テキストファイルを何らかのプログラムにパイプすることにより)。同様に、有効なUTF-8である行を除外したいと思います。言い換えれば、私は探しています。grep [notutf8] 理想的な解決策は、移植可能で、短く、他のエンコードに一般化できるものですが、UTF-8の定義を焼き付けるのが最善の方法だと感じたら先に進んでください。

10
ファイルを変更せずにCRLFまたはLFを使用するかどうかをテストするにはどうすればよいですか?
一部のテキストファイルがLinuxモードで保持されるようにするコマンドを定期的に実行する必要があります。残念ながらdos2unix、ファイルは常に変更されます。これにより、ファイルとフォルダーのタイムスタンプが台無しになり、不要な書き込みが発生します。 私が書いたスクリプトはBashにあるので、Bashに基づいた回答を好むでしょう。

13
ファイルの最後まで一致した後にすべての行を印刷する方法は?
入力file1は次のとおりです。 dog 123 4335 cat 13123 23424 deer 2131 213132 bear 2313 21313 一致するパターンをinからother file(dog 123 4335file2のように)指定します。 行のパターンに一致し、dog 123 4335一致行なしですべての行を印刷した後の出力は次のとおりです。 cat 13123 23424 deer 2131 213132 bear 2313 21313 行のアドレスなしでのみ使用する場合は、パターンを使用するだけです(たとえば1s 、行を照合して印刷する方法など)。

19
csvファイルを処理するための堅牢なコマンドラインツールはありますか?
CSVファイルを使用していますが、コマンドラインから行または列の内容をすばやく確認する必要がある場合があります。多くの場合cut、head、tail、と友人が仕事をします。ただし、cutは次のような状況に簡単に対処できません。 "this, is the first entry", this is the second, 34.5 ここでは、最初のコンマは最初のフィールドの一部ですが、cut -d, -f1一致しません。自分で解決策を書く前に、この仕事のためにすでに存在する優れたツールを誰かが知っているかどうか疑問に思っていました。少なくとも、上記の例を処理し、CSV形式のファイルから列を返すことができる必要があります。他の望ましい機能には、最初の行に指定された列名に基づいて列を選択する機能、他の引用スタイルのサポート、およびタブ区切りファイルのサポートが含まれます。 そのようなツールを知らないが、そのようなプログラムをBash、Perl、Python、または他の一般的なスクリプト言語で実装することに関する提案がある場合、私はそのような提案を気にしません。

3
テキストファイルのエンコーディングをテストするにはどうすればよいですか?有効ですか?
警告/エラーなし.htmでGeditで開くファイルがいくつかありますが、これらの同じファイルをで開くとJedit、無効なUTF-8エンコーディングが警告されます... HTMLメタタグには「charset = ISO-8859-1」と記載されています。Jeditでは、フォールバックエンコーディングのリストとエンコーディング自動検出器のリスト(現在は「BOM XML-PI」)が許可されているため、当面の問題は解決されました。しかし、これは私に考えさせられました:メタデータがそこになかったらどうでしょうか? エンコード情報が利用できない場合、どのエンコードが適用される可能性があるかを「推測」することができるCLIプログラムはありますか? そして、それはわずかに異なる問題ですが。既知のエンコーディングの有効性をテストするCLIプログラムはありますか?

8
TXTをPDFに変換する方法
.txtファイルをに変換したい.pdf。私はこれを使用しています: ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done ただし、これにより1つの「エラー」が発生します。テキストファイルに非常に長い行がある場合、折り返されません。 入力テキスト 出力PDF - また、出力PDFにテキストの画像ではなくテキストを含めることができれば素晴らしいと思います。 たくさんのTXTファイルがあります。だから手でやりたくない。上記のような自動ソリューションが必要です。

5
ファイルから最後の行を削除する
sed 特定の位置の行をすばやく削除するために使用します sed '1d' sed '5d' しかし、ファイルの最後の行を削除したいのに行数がわからない場合はどうすればよいでしょうか(使用wcしていくつかのトリックを取得できることはわかっています)。 現在、回避策を使用しheadてtail組み合わせて使用wcしています。ここで簡単なねじれはありますか?

5
ファイル内の環境変数を実際の値に置き換えますか?
ファイル内の環境変数を置換/評価する簡単な方法はありますか?私がconfig.xml含むファイルがあるとしましょう: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...等。$INSTANCE_IDファイル内のINSTANCE_ID環境変数$SERVICE_NAMEの値とSERVICE_NAMEenv varの値を置き換えます。どの環境変数が必要かを先験的に知りません(または、誰かが構成ファイルに新しい環境変数を追加した場合にスクリプトを更新する必要はありません)。ありがとう!

4
データを並べ替えずに一意の結果のみを取得する方法は?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ 必要な結果は、元のファイルのすべての行を表示して、ファイル内のステートメントの元の順序を維持しながら、(連続したものだけでなく)すべての重複を削除することです。 ここで、この例では、実際に探していた結果は aaaaaa cccccc bbbbbb uniq一般的にこの一般化された操作を実行するにはどうすればよいですか?




4
ファイルの末尾から先頭までのGrep
約30.000.000行のファイル(Radius Accounting)があり、特定のパターンの最後の一致を見つける必要があります。 コマンド: tac accounting.log | grep $pattern 私が必要なものを提供しますが、OSが最初にファイル全体を読み取ってからパイプに送信する必要があるため、遅すぎます。 そのため、最後の行から最初の行までファイルを読み取ることができる高速のものが必要です。

4
コマンドラインを使用して特定の行をコメント/コメント解除する最も簡単な方法
コマンドラインを使用してshell / config / ruby​​スクリプトをコメント化/コメント解除する方法はありますか? 例えば: $ comment 14-18 bla.conf $ uncomment 14-18 bla.conf これは、追加または削除するだろう#サインオンをbla.conf行に14します18。通常、を使用しますがsed、これらの行の内容を知ってから検索置換操作を実行する必要があり、複数の針がある場合に間違った結果が得られます(N番目のみを交換したいだけです) 1)。

1
trに非ASCII(ユニコード)文字を認識させる方法は?
ファイル(UTF-8)からいくつかの文字を削除しようとしています。私はtrこの目的のために使用しています: tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat ファイルにいくつかの外国の文字(「Латвийская」や「àé」など)が含まれています。trそれらを理解していないようです:それらを非アルファとして扱い、削除します。 ロケール設定の一部を変更してみました: LC_CTYPE=C LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat 残念ながら、これらのどれも機能しませんでした。 trUnicode を理解させるにはどうすればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.