Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

14
巨大な(70GB)、1行のテキストファイルの文字列を置き換えます
巨大な(70GB)1行のテキストファイルがあり、その中の文字列(トークン)を置き換えたいと思います。token <unk>を別のダミートークンに置き換えたい(グローブの問題)。 私が試したsed: sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new しかし、出力ファイルにcorpus.txt.newはゼロバイトがあります! 私もperlを使ってみました: perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new しかし、メモリ不足エラーが発生しました。 小さいファイルの場合、上記の両方のコマンドが機能します。 そのようなファイルである文字列を置き換えるにはどうすればよいですか? これは関連した質問ですが、答えはどれもうまくいきませんでした。 編集:ファイルを10GBのチャンク(または何でも)に分割し、それぞれに適用sedしてからマージするのはcatどうですか?それは理にかなっていますか?よりエレガントなソリューションはありますか?

3
Bashの$(コマンド置換)内での引用
Bash環境では、スペースを含む変数を使用し、これらの変数をコマンド置換内で使用します。残念ながら、SEで答えが見つかりません。 変数を引用する正しい方法は何ですか?そして、これらがネストされている場合はどうすればよいですか? DIRNAME=$(dirname "$FILE") または、置換外で引用しますか? DIRNAME="$(dirname $FILE)" または両方? DIRNAME="$(dirname "$FILE")" またはバックティックを使用しますか? DIRNAME=`dirname "$FILE"` これを行う正しい方法は何ですか?そして、引用符が正しく設定されているかどうかを簡単に確認するにはどうすればよいですか?

4
シェルの論理演算子&&、||の優先順位
論理演算子の優先順位がbashでどのように機能するかを理解しようとしています。たとえば、次のコマンドは何もエコーしないと予想していました。 true || echo aaa && echo bbb しかし、私の期待に反して、bbb印刷されます。 誰かが説明することができますか、bashの複合演算子&&と||演算子をどのように理解できますか?
126 bash  shell 

9
テキストファイル内の重複行を削除する方法は?
私の巨大な(最大2 GiB)テキストファイルには、その中のすべての行の約100の正確な複製が含まれています(ファイルはCSVのようなデータテーブルであるため、私の場合は役に立ちません)。 私が必要なのは、元のシーケンスの順序を維持しながら、すべての繰り返しを削除することです(ただし、これはパフォーマンスを大幅に向上させるために犠牲にすることができます)。結果では、各行は一意である必要があります。等しい行が100行ある場合(通常、重複はファイル全体に広がり、隣人にはなりません)、残された種類は1つだけです。 これを実装するためのプログラムをScalaで作成しました(Scalaを知らない場合はJavaを検討してください)。しかし、おそらくこれをより高速に実行できる、より高速なCで作成されたネイティブツールがあるのでしょうか。 更新:awk '!seen[$0]++' filenameファイルが2 GiB以下に近い限り、解決策はうまく機能しているように見えましたが、8 GiBファイルをクリーンアップしようとしても機能しなくなりました。4 GiB RAMを搭載したMacと4 GiB RAMおよび6 GiBスワップを搭載した64ビットWindows 7 PCで無限に実行されているように見えます。そして、この経験を考えると、4 GiB RAMを搭載したLinuxで試してみることに熱心ではありません。


10
CentOSのバージョンを確認する方法
グラフィカルインターフェイスにアクセスせずにCentOSサーバーのバージョンを確認するにはどうすればよいですか?私はいくつかのコマンドを試しました: # cat /proc/version Linux version 2.6.18-128.el5 (mockbuild@hs20-bc1-7.build.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) … # cat /etc/issue Red Hat Enterprise Linux Server release 5.3 (Tikanga) しかし、正しいものはどれですか:4.1.2-4 from /proc/versionまたは5.3 from /etc/issue?
125 centos  version 

5
コマンドライン引数を大文字にする方法は?
私はSOを検索し、大文字にすると次の文字列が機能することがわかりました str="Some string" echo ${str^^} しかし、コマンドライン引数で同様のことをしようとしましたが、次のエラーが発生しました 試した #!/bin/bash ## Output echo ${1^^} ## line 3: ${1^^}: bad substitution echo {$1^^} ## No error, but output was still smaller case i.e. no effect どうすればこれができますか?


5
スーパーブロック、iノード、デントリ、ファイルとは何ですか?
M. Tim Jones の記事Linuxファイルシステムの構造から、Linuxはすべてのファイルシステムを共通のオブジェクトセットの観点から表示し、これらのオブジェクトはスーパーブロック、iノード、デントリ、およびファイルであると読みました。残りの段落では上記について説明していますが、私はその説明にそれほど満足していませんでした。 誰かがこれらの用語を説明してもらえますか?

5
解凍中にディレクトリ名を選択する方法
という名前のファイルがありugly_name.tar、これが抽出されるとugly_nameディレクトリになります。結果のディレクトリ名がpretty_name代わりになるようなコマンドを使用できますか?
125 rename  tar 


8
RAMに十分な空き容量があるのに、なぜスワップを使用するのですか?
RAMの代わりにスワップ領域を使用すると、PCの速度が大幅に低下する可能性があります。 なぜ、十分なRAMを使用できるのに、Linuxシステム(Arch)がスワップを使用するのですか? 以下のconky出力をチェックアウトします。 また、これは私が持っている速度とシステム応答性の問題の原因になる可能性がありますか? 出力free -m: $ free -m total used free shared buffers cached Mem: 1257 1004 252 0 51 778 -/+ buffers/cache: 174 1082 Swap: 502 144 357
124 performance  swap 

3
ルートファイルシステム内のすべての大きなファイルを見つける
Linuxサーバーを使用していますが、現在使用しているスペースは次のとおりです。 /dev/sda3 20G 15G 4.2G 78% / /dev/sda6 68G 42G 23G 65% /u01 /dev/sda2 30G 7.4G 21G 27% /opt /dev/sda1 99M 19M 76M 20% /boot tmpfs 48G 8.2G 39G 18% /dev/shm ご覧のように。/78%です。確認したいのは、どのファイルまたはフォルダーがスペースを消費しているかです。 私はこれを試しました: find . -type d -size +100M 次のような結果が表示されます: ./u01/app/june01.dbf ./u01/app/temp01.dbf ./u01/app/smprd501.dbf ./home/abhishek/centos.iso ./home/abhishek/filegroup128.jar これが私の問題です。私は唯一のスペースを消費しているフォルダにそれらのファイルの名前たく/ないの/u01かを/home。/すべてのベースであるため、サーバーのすべてのファイルを表示しています。 78%に貢献している大きなファイルを取得することは可能/ですか?
124 find  disk-usage 

2
通常のユーザーとシステムユーザーの違いは何ですか?
いくつかのドキュメントでは、ユーザーが「システム」ユーザーか「通常」ユーザーか(デフォルトは「通常」)かどうかをブール値で切り替えています。 これら2つのユーザーシップモードの違いは何ですか?ユーザーが何であるか、またはなぜ(「偽の」ものであっても)ユーザーが必要な理由を知る必要はありませんが、この特定の区別は直感的ではありません。
124 users 


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