• ベストアンサー

UNIXで文字列操作

あるログファイルを整理しているのですが知識が無く困ってます。 A A B C というログファイルの重複部分のみ消去したいのですが一般的なコマンドで可能でしょうか?catしてsortして整理まではできたのですが重複文字列をどのように消せば良いでしょうか? データ数は2万行ほどです

  • aix31
  • お礼率43% (31/71)

質問者が選んだベストアンサー

  • ベストアンサー
  • iriyak
  • ベストアンサー率48% (40/82)
回答No.1

こんにちは。 uniq(1) をトライしてみてはいかがでしょうか??

aix31
質問者

お礼

ありがとうございます uniqとははじめて知りました 助かりました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

本当に行に1文字しかないのであれば、sort -u でいいです。 また、-u オプションは、ソートキーが同一の複数行を1つのこして残りを消しますので、sort にソートキーを指定した場合は-uを追加すればいいです。

aix31
質問者

お礼

ありがとうございます sortにオプションがあるなんてmanをじっくり読むべしですね 助かりました

関連するQ&A

  • テキストから複数の任意の文字列を含んだ行を抽出したいです

    cat test.txt | grep aaabbb とするとaaabbbを含んだ行を抜き出せるんですが、 aaabbbまたはcccdddという文字列を含んだ行を抜き出したいときにはどうすればいいでしょうか? どちらか一方もしくは両方を含んだ行を抜き出してほしいです。 ログを見る際に使いたいのでコマンド一つで出来ると助かります。

  • 複数の文字列を検索

    あるログファイルの文字列を取得して。検索でヒットした文字列行 を返すスクリプトを作成しております。 検索:"OK"    日付 対象行 : OK! Tue Jul 19 文字列"OK"は普通に # grep "OK" ログファイルPath で検索できますが、 文字列と日付を両方引っ掛ける場合は・・・ grep -e "OK" -e env LANG=c date -u +"%a %b $d" ログファイルPath 当然コマンドエラーになります。 dateコマンドから日付を取得して、grepにて引っ掛ける方法を知りたいので すが、お分かりになる方、ご教授お願い致します。

  • Excel2003 マクロで同じ文字列の行を消す

    Excel2007からは重複したデータを消すことは出来ますが、同じ文字列を全部消す(ひとつものこらず)方法が無いか悩んでいます。 例えば、A1に「1234」 A2に「4231」 A3に「1234」がある場合、A1とA3どちらも削除したいです。 このような事が自動で出来るマクロをどのようにすれば作れるでしょうか? 私が考えているのは、 1)A列をソート 2)一つ前の行と比較して同じならどちらの行も消す (同じデータは、2つ以上ないです) という具合なのですが、2の部分の書き方が分かりません。

  • 行列データ?の文字列操作についてです。

    行列データ?の文字列操作についてです。 ----------------------------------------------- ID A B C D E 1 1.5 1.1 a 6 2 7.4 b 1 3 7.2 c 1 4 3.2 3.1 a 1 5 1.9 1.6 a 4 6 4.0 d 3 8.0 (上手く張れませんので、画像ファイルをつけました。 実際のデータはこのようにtabが入っています。) ----------------------------------------------- 上記のような文字列?をテキストボックスのようなところに入力(ペースト)し、 変換ボタンを押すことにより、 変換後文字列 1.1-1.5(6, a), 1.6-1.9(4, a), 3.1-3.2(1, a), 4.0(3, d, 8.0), 7.2(1, c), 7.40(1, b) と変換させたい。 行っていることは下記になります。 1、B列の数字が入力されていて、A>Bの時にはAとBを入れ替える。 2、A列の数字で昇順でソートする。 3、B列の数字が入力されているものは「A-B」とする。 4、それぞれの行を「A-B(D, C,E)」として「,」でつなぐ。 今回文字列の例として6行のものを示しましたが、行数は増減します。 列はE列まででこちらは増減しません。 Excel VBAを用いて行っているのですが、javascriptで組みたいと考えています。 可能なものでしょうか?

  • 文字列から特定の文字だけを消す方法

    こんにちは。 C#で悩んでいる者です。 ReadAllLineで読み込んだ複数行の文字列があります。 これらの行の奇数行目は初めの数文字、偶数行目も初めの数文字を消去したいのです。 ただ、どちらも数文字というのは数が違います。 できれば具体的なソースなどもいただければ嬉しいです。 よろしくお願いします。

  • UNIX:縦一列のファイルを横一行として表示したい

    お世話になります。 A.TXTのような縦一列にデータが入っているテキストファイルがあります。 それを横一行の形式で表示させたいのですが、可能でしょうか? 実現する方向性のヒントでも頂けたらと思います。 ■望む結果 文字列1文字列6文字列5文字列2文字列4文字列3 ------------------------------------------ catコマンドでファイルを見ると、A.TXTの内容のままになります (まぁ、当たり前ですが・・・)。 ■A.TXT 文字列1 文字列6 文字列5 文字列2 文字列4 文字列3 ※文字列の並びはランダム

  • Excelで文字列をまとめたい

    こんにちは いつもお世話になります。 このカテへの投稿は初めてですが、今頼まれて簡単な集計表を作ろうとしています。 あるシートを入力専用のシートにし、たとえばA列に日付、B列には品名、C列には数量を入れるとします。 これを1ヶ月続けたあと、品名でまとめた集計表を作ります。 100行くらいのデータのうち、種類としては10数種類であり、その数は毎月変動します。(行数も) 集計表に重複せずに整理するため、今まではB列だけを別にコピーし、手動でソートして重複しているデータを削除していました。 これをなんとかもっと簡単に行う方法はないものでしょうか? 残りの数字の部分はSUMIF関数を使って合計させていますので簡単なのですが、前処理にいい方法が思いつきません。 ぼちぼち頭の柔軟性に疑問符がつき始めた小生になにかいいヒントをいただけましたら幸いです。 よろしくお願いいたします。

  • エクセル 特定の文字列の消去について

    ある資料Aから、 ある資料Bの文字列を全部消去したいと思っています。 つまり資料Aの文字列から、 Bの文字を抜き出すわけですが Bの資料にはAから削除したい文字が複数フィールドあります。 データ量が多いため、一列にすることが現実的ではないため、 Substituteのようなコラム処理を複数コラムをもとにできるのかどうか、 知識のある方いらっしゃいましたらアドバイスよろしくお願いします。 添付画像のように、 Aにはコラムが一つだけ Bにはコラムが3つあり、 Bのすべてのコラムの文字列をAから消去したいです。 Bの1行目の文字列が Aの違う行に出てきても消去の対象としたいです。 よろしくお願いします。

  • teraterm文字列の選択

    お世話になっております。 現在、teratermのマクロを用いてサーバログの監視を行おうとしているのですが。 ログを閲覧するコマンドを送信して、ログがドバーっと出てくるのですが、 特定の行の、特定の文字列を指定するという事はteraterm上で可能なのでしょうか? また、その指定した文字列を用いて比較や条件分岐はできるのでしょうか? 現状、ドバーっと出てきたログをテキストファイルに吐き出して、 MSDOSのマクロで特定の文字列を抽出して云々という運用をしております。 teratermのみで実現できれば運用もしやすく、第三者にも分かりやすいので、 できればそうしたいと考えております。 ご教示のほど、よろしくお願い致します。

  • ファイルから文字列を読み出して、比較する方法

    ./log.dat に以下のように数行のログが記録されています。 文字列a<>ipアドレスa 文字列b<>ipアドレスb 文字列c<>ipアドレスc 上記ログ内に$wordに指定された文字列が含まれている場合の処理を行いたいのですが、この場合はどのように書けばよろしいのでしょうか。 $word = "文字列b<>ipアドレスb"; if ($word !~ ログ内容) {処理} ↑のように色々試してみましたがうまくいきません。Perlの知識は素人並みです。宜しくお願いいたします。

    • ベストアンサー
    • Perl