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

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

11
文字列の最後の3文字のみを印刷するコマンド
cutコマンドはn文字列の最初の文字を印刷できることを知っていますが、最後のn文字を選択する方法はありますか? 文字数が可変の文字列がある場合、文字列の最後の3文字のみを印刷するにはどうすればよいですか。例えば。 必要な「無制限の」出力は「ted」です 「987654」が必要な出力は「654」です 必要な「123456789」の出力は「789」です


2
ソートせずに1つの列内の重複に基づいて行を削除します
大きな3列のファイル(〜10,000行)があり、その行の3列目の内容が別の行の3列目に表示されたときに行を削除したいと思います。ファイルのサイズによってソートが少し面倒になり、行全体が同一ではないため、以下のコードのようなものは使用できません。列3の内容のみ。 awk '!seen[$0]++' filename

5
コマンドラインに印刷された行の間に改行を追加するにはどうすればよいですか?
メールログは非常に読みにくいです。コマンドラインに印刷された各行の間に空白行を出力するにはどうすればよいですか?たとえば、ログをgrepしているとします。そうすれば、複数のラップされた行が混同されることはありません。

6
XYより短い線を削除する方法は?
2048文字より長い行を削除する方法についての質問を見つけました: XYより長い場合に行を削除する方法は? Q:しかし、どのようにして4文字より短い行を削除できますか?したがって、ファイル内の長さが1または2または3の行を削除します。 更新:多くの良い答えをありがとう、しかし、私は1つだけをOKとマークすることができます


4
10進数から16進数へのBASHベースの変換
Bashでは、10進数から別のベース、特に16 進数へのベース変換をどのように行いますか。他の方法で行くのは簡単そうです: $ echo $((16#55)) 85 ウェブ検索で、変換を行うための数学と文字操作を行うスクリプトを見つけ、それを関数として使用できましたが、bashには既にベース変換が組み込まれていると思っていました-しますか?

3
sedを使用して、solarisのコマンドからの出力に色を付ける
Linuxとsolarisの両方で動作するkshスクリプトがあります。特定のコマンドの出力を色付けしようとしています。Linux(特にRHEL6)では動作しますが、solaris(SunOS 5.10)では動作しません。 Linuxのコマンド(出力「テスト」は正しく赤で表示されます): [amartin@linuxbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,' test solarisのコマンド(出力「テスト」は色付けされていません): [amartin@sunbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,' x1B[31mtestx1B[0m 出力に生のコードなしで、出力が赤になるようにこのコマンドを作成する方法はありますか?「echo」コマンドを変更することはできません。これは、実際に実行しているコマンドの入力にすぎないためです。

4
gnu texttoolsで連続した 'wc -l'を実行する方法は?
もちろん知っている cat logfile.txt | wc -l 120 ファイル内の行数を教えてくれます。 一方、 tail -f logfile.txt 別のプログラムが書き込む新しい行を表示しlogfile.txtます。 両方を組み合わせて、標準のテキストユーティリティでlogfile.txtの継続的な更新行数を取得することは可能ですか? 私は知っています watch wc -l logfile.txt しかし、毎回ファイル全体を再カウントしたくないので、それは無駄だと思われます。1秒ごとに追加のみのカウントが必要になり、おそらく行末では\rなくカウントが必要になり\nます。

5
パターンの上の行の範囲をsed(またはawk)で削除します
パターンbananaを持つ行とその後の2行を削除する次のコードがあります。 sed '/banana/I,+2 d' file ここまでは順調ですね!しかし、私はそれを前 bananaに2行削除する必要がありますが、「マイナス記号」または何でも取得することはできません(何をgrep -v -B2 banana fileすべきかと同様ですが): teresaejunior@localhost ~ > LC_ALL=C sed '-2,/banana/I d' file sed: invalid option -- '2' teresaejunior@localhost ~ > LC_ALL=C sed '/banana/I,-2 d' file sed: -e expression #1, char 16: unexpected `,' teresaejunior@localhost ~ > LC_ALL=C sed '/banana/I,2- d' file sed: -e …


11
単一の改行のみを置き換えるより良い方法が必要ですか?
私は通常LaTexにコンパイルするため、または改行が無視される他の形式で書くので、私は文ごとに1行を書く習慣があります。空白行を使用して、新しい段落の開始を示します。 これで、このスタイルで記述されたファイルがあり、プレーンテキストとして送信したいだけです。単一の改行をすべて削除したいが、二重の改行はそのままにしておきたい。これは私がやったことです: sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt これは空の行をファイルに表示されないと確信しているいくつかのテキストで置き換えます:NEWLINEそして、それはawkですべての改行を取り除きます(いくつかのウェブサイトでそのトリックを見つけました)そして、NEWLINEsを必要な2つの改行で置き換えます。 これは非常に単純なことを行うための長い方法のようです。もっと簡単な方法はありますか?また、複数のスペース(何らかの理由で時々入り込む)を単一のスペースに置き換える方法があれば、それも良いでしょう。 私はemacsを使用しているので、いくつかのemacs固有のトリックがあれば良いのですが、純粋なsedバージョンまたは純粋なawkバージョンが必要です。

13
CSVをTSVに変換する
多数の大きなCSVファイルがあり、それらをTSV(タブ区切り形式)で希望しています。複雑なのは、CSVファイルのフィールドにコンマが含まれていることです。例: A,,C,"D,E,F","G",I,"K,L,M",Z 期待される出力: A C D,E,F G I K,L,M Z (その間の空白は「ハード」タブです) このサーバーにPerl、Python、およびcoreutilsがインストールされています。


3
bashスクリプトを使用して文字列+数値と結合した文字列をソートするにはどうすればよいですか?
これは、ソートしたいデータです。しかしsort、数値を文字列に処理し、データは期待どおりにソートされません。 / home / files / profile1 / home / files / profile10 / home / files / profile11 / home / files / profile12 / home / files / profile14 / home / files / profile15 / home / files / profile16 / home / files / profile2 / …

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