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

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

3
特定の文字列で始まる列を出力する
次のようなファイルがあります。 ID101 G T freq=.5 nonetype ANC=.1 addinfor ID102 A T freq=.3 ANC=.01 addinfor ID102 A T freq=.01 type=1 ALT=0.022 ANC=.02 addinfor ご覧のように、各行にはわずかに異なる数の列があります。具体的には、列1、列2、列3、列4、および次で始まる列が必要です。ANC= 望ましい出力: ID101 G T freq=.5 ANC=.1 ID102 A T freq=.3 ANC=.01 ID102 A T freq=.01 ANC=.02 私は通常、awkコマンドを使用してファイルを解析します。 awk 'BEGIN {OFS = "\t"} {print $1, $2, $3, $4}' …

8
テキストファイルを固定数の単語を含む行に分割する
関連していますが、満足のいく答えはありません。大きなテキストファイルを500ワード程度のチャンクに分割するにはどうすればよいですか。 私は、1行に10 ^ 7ワードを超えるテキストファイル(http://mattmahoney.net/dc/text8.zip)を取得し、それをそれぞれNワードの行に分割しようとしています。私の現在のアプローチは機能しますが、かなり遅くて醜いです(シェルスクリプトを使用)。 i=0 for word in $(sed -e 's/\s\+/\n/g' input.txt) do echo -n "${word} " > output.txt let "i=i+1" if [ "$i" -eq "1000" ] then echo > output.txt let "i=0" fi done これをより速く、またはよりコンパクトにするためのヒントはありますか?

2
改行を無視してファイル内のテキストを検索する方法は?
ファイル内の複数行に分割されている可能性のあるテキストを検索したいのですが。改行を無視し、一致する行のスパンを返すgrep。 例えば、私はを検索していてis an example file、それが次のファイルにあることを期待しています: これは、 サンプルファイル。 先頭または末尾のスペースに依存しないようにするには、すべての形式の空白を完全に無視するのが最適です(理想的には、一連の空白を単一のスペースとして扱う)。 非理想的な解決策の1つはtr '\n' ' ' | grep、一致と非一致を区別しますが、一致を表示せず、大きなファイルを適切に処理しません。

5
ディスク使用率が90%を超えた場合にアラートメールを送信するシェルスクリプト
ディスク使用率が90%を超えると自動的に電子メールアラートを送信し、95%を超えると2番目の電子メールアラートを送信するスクリプトをサーバーに実装したいと思います。私のファイルシステムはabc:/xyz/abcで、マウントポイントは/pqrです。 私はこれを試しました: ADMIN="someone@def.com" ALERT=90 df -H | grep -vE 'abc:/xyz/pqr | tmpfs |cdrom' | awk '{ print $5 " " $1 }' | while read output; do usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 ) partition=$(echo $output | awk '{ print $2 }' ) if [ …


3
大きなフォルダー階層でテキストを置き換える方法は?
いくつかのインスタンスを除いて、ファイルの大規模なセットの一部のテキストを検索して置換したい。各行について、その行を置き換える必要があるかどうかを尋ねるプロンプトが必要です。vimに似ていますが(確認を求めるプロンプト:%s/from/to/gcが表示さcれます)、一連のフォルダーに渡ります。使用できる優れたコマンドラインツールまたはスクリプトはありますか?


1
中間ファイルを使用せずにクリップボードのコンテンツをフィルタリングする
クリップボードにあるテキストを変更し、いくつかの文字列を含むその特定の行を削除してから、さらに操作するために出力を取得しようとしています(必要な場合にのみ、クリップボードに対処することを好みます)。私はこのようなことを考えていました: cat > swapfile ##Paste all grep -v string swapfile ## Read all rm swapfile 私はファイルの作成を防ぎ、シェルの標準入力/出力自体ですべてを実行しようとします。パイプ、リダイレクト、入力からのgrep / sedを使用してみましたが、望ましくないパターンなしで入力を印刷する結果にはなりませんでした。

2
sed:2行に一致
レコードが2行に分割されているテキストファイルがあります。1行にまとめたいと思います。レコードは次のようになります。 2013-07-29 apt-get install git 2013-07-29 apt-get install rsync 2013-07-31 apt-get install nmap 2013-08-02 apt-get install cifs-utils 2013-08-05 apt-get install telnet 以下を入手したいと思います。 2013-07-29 apt-get install git 2013-07-29 apt-get install rsync 2013-07-31 apt-get install nmap 2013-08-02 apt-get install cifs-utils 2013-08-05 apt-get install telnet で試しましたがsed、2行一致しません。いくつかのトリックはありますかsed、それともより良いツールがありますか?


3
ファイル内の位置に文字を表示する
コマンドラインのみを使用して、指定された位置に文字を印刷したいと思います。例えば: <command> 5 aそのファイルの5番目の文字がであれば出力されますa。 私は大きなファイルを扱っているので、理想的にはこれで大きなファイルを処理できます。


7
単語を改行で置き換える方法
次のデータを含むテキストファイルがあり、各行の末尾は|END|です。 T|somthing|something|END|T|something2|something2|END| 私はsed |END|で\n新しい行に置き換えることを試みています。 sed 's/\|END\|/\n/g' test.txt しかし、それは以下のような間違った出力を生成しています: T | s o m e ... しかし、私が欲しいのはこれです: T|somthing|something T|something2|something2 私も試してみましたtr。それもうまくいきませんでした。

5
ファイルの最後のn行を編集するにはどうすればよいですか?
ファイルの最後のn行を編集できるコマンドはありますか?私はいくつかのファイルを持っていますが、そのすべてに異なる行数が含まれています。しかし、各ファイルの最後のn行を変更したいと思います。目標は、最後のn行でコンマをセミコロンに置き換えることです。しかし、最後のn行のみです。 行を削除したくありません。各ファイルの最後のn行のすべてのコンマをセミコロンに置き換えたいだけです。 sedコマンドを使用して、最後の行をこのコマンドで置き換えることができます。ここで説明するように: ファイルの最後の行のテキストを削除するにはどうすればよいですか? しかし、これにより、最後のn行ではなく、最後の行のみを変更できます。

3
lshwから2行をgrepする方法は?
マザーボードのシリアル番号とコンピューターの製品モデルをgrepしたい。使った sudo lshw | grep -m1 serial: シリアル番号をgrepする方法(「serial:」が複数あり、最初のものが必要なためです。これをどのように行うことができ、同時に「product:」のgrepも同時に実行できますか?productも複数存在します。そして最初のものはまた私が欲しいものです。 lshw これを返します: user@ubuntu:~$ sudo lshw ubuntu-pc description: Notebook product: 23252DG (LENOVO_MT_2325) vendor: LENOVO version: ThinkPad X230 serial: R9TWZVR width: 64 bits capabilities: smbios-2.7 dmi-2.7 vsyscall32 configuration: administrator_password=disabled chassis=notebook family=ThinkPad X230 power-on_password=disabled sku=LENOVO_MT_2325 uuid=01ECC0B1-8251-CB11-8538-B7D9EC435D9B *-core description: Motherboard product: 23252DG vendor: LENOVO physical id: …

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