Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxシステムでuniqコマンドを使用してテキストを削除する方法

Linuxシステムでuniqコマンドを使用してテキストを削除する方法

  
行目を繰り返してください

Linuxシステムでは、テキストの内容が重複して表示されることが避けられません。それはどうですか?次の小シリーズでは、Linuxでuniqコマンドを使用して重複行を削除する方法を紹介します。

は、uniqのは、基本的には私たちが望んでいないものを、テキストの

重複行を
行うために使用されるので、我々は取り除く必要があります。 Linuxには他にも重複する行を削除できるコマンドがありますが、それでもuniqが便利なものだと思います。 uniqを使用するときは、次の2点に注意してください。

1.テキストを処理するときは、重複する行が隣接行でない限りチェックされないため、通常sortコマンドと組み合わせて使用​​されます。最初に入力をソートしたい場合は、sort -uを使用してください。

2、テキスト操作の場合、フィールドが最初のnull文字(通常はスペースとタブを含む)で、その後null以外の文字の場合、フィールド内の文字の前のnull文字はスキップされます。

次に、uniqパラメータの説明

コードは次のとおりです。

[zhangy @ BlackGhost〜] $ uniq --help

使用法:uniq [オプション]。 。 。 [ファイル]

入力ファイルまたは標準入力から隣接する一致行をフィルタリングして、出力ファイルまたは標準出力に書き込みます。 "/p" "p"は、一致する行が最初に出現したときにマージされるときにオプションを付加しません。 "/p"長いオプション "p"に使用する必要があるパラメータは、短いオプションにも必要です。

-c、--count //各行の前に対応する行の出現回数にプレフィックス番号を追加します。

-d、--repeated //重複行のみを出力します

-D、--all-repeat //重複した行だけをエクスポートしますが、数行を出力する行がいくつかあります。

-f、--skip-fields = N // - f無視されるセグメントの数、-f 1は最初の段落を無視します。

-i、--ignore-case //は大文字と小文字を区別しません。

-s、--skip-chars = N //root-fは少しだけです。 -sは無視されますが、後ろの5文字は無視されます。

-u、--unique //表示されたすべてのroot mysqlの個別の関数を削除します。改行ではなく、

-z、 - ゼロで終了する0バイトの終了行に似ています。

-w、 - check-chars = N //各行のN番目の文字の後内容はチェックされません。

--help //このヘルプを表示して終了します。

--version //バージョン情報を表示して終了します。

3を使用して、テキストファイルuniqtest

のコードを次のようにテストします。

これはテストです。

これはテストです。

これはテストです。タンク

これは試してみるテストです

誰が試してみる

誰が試してみる

あなたが試してみる

私はしたいですAbure

私たちは善人です

私たちは善人です

IV、例の説明

コードは次のとおりです。

[zhangy @ BlackGhost] Mytest] $ uniq -c uniqtest

3これはテストです。

1私はタンクです

2私はタンクが大好きです

1これはテストです//そして最初の行が重複しています

1試してみた人

1誰が試してみました

1あなたは試してみました

1欲しいです海外へ

1私たちは善人です

1私たちは善人です

上記の例から、重複行をチェックするとき、uniqの機能であることがわかります。隣接行のみがチェックされます。データを繰り返してください、隣接していないそれらの多くがなければなりません。

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ sort uniqtest | Uniq -c

1誰が試してみました

1私は戦車です

2私は戦車が大好きです

1私は海外に行きたい

4これはテストです。

1それらはいい人です

1私たちはいい人です

1人は試してみます

1あなたは試してみます

これにより、前の例で説明した問題が解決します。

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -d -c uniqtest

3これはテストです。

2 i love tank

uniq -dは重複した行しか表示しません。

コードは次のとおりです。

[zhangy @ BlackGhost] Mytest] $ uniq -D uniqtest

これはテストです。

これはテストです。

これはテストです。

私はタンクが大好きです。
<

i love tank

uniq -Dは繰り返し行だけを表示し、繰り返し行を表示します。彼は-cで使用することはできません。

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -f 1 -c uniqtest

3これはテストです。

1私は戦車です

2私は戦車が大好きです

1これはテストです。

2あなたは試してみました

1あなたは試してみました

1私は海外に行きたい

2それらは善人です//1行だけ、2行を表示

ここでは1行しかありませんが、表示は繰り返されます、これこれは、-f 1が最初の列を無視し、2番目のフィールドから始まる重複をチェックするためです。

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -i -c uniqtest

3これはテストです。

1私は戦車です< Br>

2私はタンクが大好きです。

1これはテストです。 Br>

1私は海外に行きたい

1それらは善人です。

1私たちは善人です。 p>コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -s 4 -c uniqtest

3これはテストです。

1私は戦車です。

2私はタンクが大好きです。

1これはテストです。

3試した人は誰ですか//ルート上の例との違いは何ですか

1それらは善人です

1私たちは善人です

確認するときは、最初の4文字を考慮しないでください。 。

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -u uniqtest

私は戦車です。

これはテストです。

誰が試してみる

誰が試してみる

あなたは試してみる

私は海外に行きたい

それらは善人です

私たちはいい人たちです。

アイテムを繰り返して、それらすべてを表示するには

コードは次のとおりです。

[zhangy @ BlackGhost mytest] $ uniq -w 2 -c uniqtest < Br>

3これはテストです。

3私は戦車です。

1これはテストです

1試してみてください

1あなたは試してみてください

1私は海外に行きたいです

1それらは善人です

1私たちは善人です

各行の後の2番目の文字の内容はチェックされません。したがって、私はタンクルートです。私はタンクが大好きです。

Linux上でuniqコマンドを使用して重複行コマンドを削除する方法上記の方法では、テキスト内の重複行が役に立たないだけでなく、スペースを占有することがあります。

Copyright © Windowsの知識 All Rights Reserved