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

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

3
bashスクリプトによる設定ファイルの編集
私は、アプリケーションのインストールと設定ファイルの更新に使用する単純なbashスクリプトを作成しようとしています。設定ファイルを修正するのに苦労しています。 # DBHost=localhost DBName=test # DBPassword= 上記のように以下のように変更する方法はありますか? DBHost=localhost DBName=database DBPassword=password

2
Python Shebangですべてのファイルを検索する
大きなソースツリーに対してPEP8チェックを実行しようとしています。ツリーは、さまざまな言語のファイルの組み合わせで構成されています。アイデアは、明示的にリストする必要なしにすべてのPythonスクリプトをチェックすることです。これらのファイルの大部分には、実際には.py拡張子がありません。シバンでPythonという単語を含むすべてのファイルを検索する、または実行時にPythonで実行されるすべてのファイルを検索する簡単な方法はありますか?

4
特定のファイル(複数)の行末にある末尾の空白を削除するにはどうすればよいですか?
私はそれらを表示するようにvimを構成したソースファイル内の不要なスペースにうんざりしています。 問題は、(いつもではないにしても)私の仲間の開発者と無駄なスペースを扱わなければならないことが非常に多いということです。 ソースファイルをスキャンし(正規表現を指定)、指定されたすべてのファイルから空白を削除したいのですが。 私はウェブ( "bash remove whitespace"など)を検索しましたが、有用なものは見つかりませんでした。

6
テンプレートからテキストファイルを作成するツール
テンプレートから100以上のテキストファイルを定期的に作成する必要があります。 現在、非常に複雑なシェルスクリプトを使用しています。これを処理するスマートな方法があると思いますが、方法がわかりません。 「データベース」があります。 # outputfile template data1 data2 data3 first.txt $template_main $text1 abcd 1234 second.txt $template_main $text2 efgh 5678 third.txt $template_other $text1 ij 90 そして設定ファイル: template_main=main.txt template_other=other.txt text1=whatever text2=blah テンプレートは、%% data2 %%のようなプレースホルダーを含むテキストファイルです(プレースホルダーフォームは変更できます)。 誰かがこれを複雑なシェルスクリプトよりも自動化するツールを知っていますか?

3
すべてのパーセントエンコードされたUTF-8サブストリングをプレーンUTF-8テキストに置き換える方法は?
URLに多くの%エンコードされたUTF-8テキストを含むhtmlファイルを持っています。 たとえば、「%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B」は「ресурсы」(ロシア語では「リソース」)を表します。 タスクは、そのようなすべての部分文字列を読み取り可能なUTF-8テキストに置き換えることです。 タスクを簡略化するため%に、ファイルに他の符号の使用がないと見なすことができます。文字の数字は大文字と小文字の両方にすることができます。 私はこれがでエレガントに行うことができます疑いがあるsed、perl、awkまたは何かが、方法がわかりません。 このWebアプリケーションは、そこに貼り付けたテキストでトリックを行うようです。

5
bashの最初のフィールドで順序付けられた行をカウントする方法
以下はINPUTのスニペットです。 ... #################### Bala Bela;XXXXXX12345;XXXXXX12345678;A SERVER345Z3.DOMAIN.com0 SERVER346Z3.DOMAIN.com0 SERVER347Z3.DOMAIN.com0 SERVER348Z3.DOMAIN.com0 ssh-dss ...pubkeyhere... #################### Ize Jova;XXXXXX12345;XXXXXX12345;A SERVER342Z3.DOMAIN.com0 SERVER343Z3.DOMAIN.com0 SERVER345Z3.DOMAIN.com0 ssh-rsa ...pubkeyhere... ... そして、ここに私が必要とする出力からのスニペットがあります: Bala Bela;XXXXXX12345;XXXXXX12345678;A 4 Ize Jova;XXXXXX12345;XXXXXX12345;A 3 したがって、INPUTからのOUTPUTが必要です。これにより、「SERVER」で始まる行が特定のユーザーに送信されることがわかります(例:「Bala Bela; XXXXXX12345; XXXXXX12345678; A」)。どうすればbashでこれを行うことができますか?

4
UNIXツールボックスの(テキストベースの)プロットツールはありますか?
UNIXツールボックスで利用できる汎用のプロットツールがあるかどうか疑問に思っていましたか? プロットとは、単純なバーや、多くのcursesベースのユーティリティで表示されるものを意味します。 そして、UNIXツールボックスとは、標準のUNIX規則を使用してデータをそれらにパイプできることを意味します。 ログファイル内の何か(tail -Fまたは何かで監視しているもの)を数え、(エラーや警告の割合などの)ライブの比率をプロットする必要があります。

2
コマンドラインユーティリティを使用して、UNIXでXML、JSON、および新しいデータファイル形式を解析する
Unix環境には、さまざまな形式のテキストを解析するための優れたツールがいくつかあります。ただし、最近のデータは、以前のような従来の(履歴)形式(CSV、TSV、レコードベース、またはその他の区切り文字ベース)ではありません。最近のデータは、XML / JSONなどの構造化フォーマットで交換されます。 sed、awk、Perlのような、ほとんどすべての形式のデータを削除できる優れたツールがあることは知っています。ただし、この種の構造化データを操作するには、多くの場合、完全なプログラムを作成する必要があり、情報を抽出するために利用できる少しの時間を考えると、座ってクエリしたいロジック全体を理解する必要があります。プログラムでそれをダウンさせます。時々、これは大丈夫ではありません–基本的にそれらのファイルから抽出された情報がさらなる作業のための入力として機能するためです。また、適切なソリューションを検索してコーディングするのに時間がかかるためです。データを検索、クエリ、およびダンプするための十分なスイッチを備えたコマンドラインツールが必要です。 XML / JSONまたは他の形式の構造化データを取得し、csvなどの他の形式にダンプして、そこから他のコマンドを使用して情報を取得できるツールを探しています。 あなたが知っている、この種の仕事をするコマンドラインユーティリティはありますか?これに利用可能なawk / Perlスクリプトはすでにありますか?

3
コマンドからの出力で2つのことを行う
texcountLaTeXドキュメントの単語数を出力するプログラムがあります。また、この出力をパイプしsedて改行をTeX改行にし、これをファイルに書き込んで、最終的なドキュメントに含めることもできます。しかしtexcount foo.tex | sed s/$/'\\\\'/ > wc.tex、コマンドラインを実行すると、出力texcountが抑制されます。 どのように私は、最初のコマンドの出力が端末に表示されるように得ることができるとのsedにパイプ?

3
ファイルの最後から最後のカンマ区切りを削除するにはどうすればよいですか?
Linuxでファイルから最後のカンマ区切りを削除するにはどうすればよいですか? ファイルの例: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536", 予期された結果: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536"

4
多くの大きなファイルで重複する行を見つける方法は?
30k以下のファイルがあります。各ファイルには〜100k行が含まれます。行にはスペースが含まれていません。個々のファイル内の行はソートされ、複製されません。 私の目標:2つ以上のファイルにまたがるすべての重複行と、重複したエントリを含むファイルの名前も検索したいです。 簡単な解決策はこれです: cat *.words | sort | uniq -c | grep -v -F '1 ' そして私は走るでしょう: grep 'duplicated entry' *.words より効率的な方法がわかりますか?

4
ファイル内の単語をGrepしてからファイルをコピーする
ファイルのコレクションがあります(* .zip、*。txt、*。tar.gz、*。doc、... etc)。これらのファイルはパス内にあります。すべてのファイル(* .txt)を検索し、特定の単語を含むテキストファイル(たとえば、LINUX / UNIX)のみをコピーしたい。 私は以下を実行しました: find . -name "*.txt" | grep 'LINUX/UNIX' このコマンドはすべてのテキストファイルを見つけることができ、 "grep"は 'LINUX / UNIX'を含むテキストファイルのみを一覧表示することにより、結果のテキストファイルをフィルター処理しました。 これらの最終的なファイル(つまり、 'LINUX / UNIX'を含むテキストファイル)を特定の選択したパスにコピーするにはどうすればよいですか? 応募してみました xargs find . -name "*.txt" | grep 'LINUX/UNIX' | xargs cp <to a path> しかし、それはうまくいきませんでした

2
awkを使用した3つのファイルの処理
以下のファイルを検討してください。 file1: boo,8,1024 foo,7,2048 file2: foo,0,24,154 noo,0,10,561 file3: 24,154,7,1024,0 私が必要なのは、File1に移動して、次のことを確認することです$2==7。trueの場合、取る$1、$2と$3からファイル1。ここで$1、File1とFile2が等しいかどうかを比較する必要$1があります。trueの場合、私が取らなければならない$3と$4のFile2の中に存在していないこれはFile1、その後、私が行かなければならないFILE3とかどうかを確認$1からFILE3することに等しい$3からFile2の、そして$2からFILE3に等しい$4からFile2の。はいの場合$2、File1からかどうかを確認する必要があります等しい$3からFILE3、この条件が真であるならば、私は比較する必要が$3からはFile1と$4からFILE3場合は、$3からファイル1以上である$4から、FILE3。 次のスクリプトを試しました。 cat [file1] [file2] [file3] | awk -F, '{if(NF==3) {if($2==7){a[$1]=$1; b[$1]=$2; c[$1]=$3} }else {if(NF==4){if(a[$1]==$1){d[$3]=$3; e[$4]=$4} }else {if(NF==5){if(d[$1]==$1 && e[$2]==$2){print a[$1], b[$1], c[$1], d[$1]}} } } }' 望ましい出力は次のとおりです。 foo,7,2048,24,154,1024

1
2つの並列テキストファイルをシャッフルする
約50 milの単語を含む2つの文に揃えられた平行コーパス(テキストファイル)があります。(Europarlコーパスから->法的文書の並行翻訳)。2つのファイルの行をシャッフルしたいのですが、どちらも同じ方法です。私は、gshuf(私はMacを使用しています)を使用して、1つの一意のランダムソースを使用してそれにアプローチしたいと思いました。 gshuf --random-source /path/to/some/random/data file1 gshuf --random-source /path/to/some/random/data file2 しかしend of file、ランダムシードには、ソートするファイルに含まれるすべての単語を含める必要があるため、エラーメッセージが表示されました。本当?はいの場合、自分のニーズに合ったランダムシードをどのように作成すればよいですか?いいえの場合、他にどのようにファイルを並行してランダム化できますか?それらを一緒に貼り付け、ランダム化してから再び分割することを考えました。ただし、ファイルで発生しない区切り文字を最初に見つける必要があるため、これは醜いようです。

7
マイナス記号を維持しながら特定の列の数値を削除しますか?
次のデータフレームが水平方向と垂直方向に無期限に続き、奇数列にのみ負の数が表示されます。 -1 2 3 4 -5 9 2 3 -4 5 -6 11 そして、2番目、4番目、6番目の完全な列(またはすべての偶数列)と、1番目、3番目、および5番目(またはすべての奇数列)からのみマイナス記号が必要なので、これを取得します。 - 2 4 - 9 3 - 5 - 11 そして最終的にこれで終わります: -2 4 -9 3 -5 -11 したがって、変更されていない偶数列と奇数列の値が必要です。負の値がある場合は-を保持し、正の値がある場合は破棄します。 これをawk / sedで行う方法はありますか? これは私が得る限り遠いです: awk '{ for (i=2;i<=NF;i+=2) $i="" }1' FILE.txt | sed 's/[0-9,.]*//g'

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