タグ付けされた質問 「awk」

パターン指向のスキャンおよび処理言語。

1
複数行のawkスクリプトをシェルスクリプトに統合する方法
私の質問は 「グループ番号」に保持されている3桁の数字を抽出するためにファイルを解析する方法 私は単一のシェルスクリプトに一連のコマンドを統合しようとしています 欧州規格を解析してテストシーケンスを抽出する テキストエンコーディングをutf8に変換します 上記の投稿で私に提供されたawkルーチンで結果を処理します。 コンテンツを宛先ファイルに保存する 以下のスクリプトを暫定的に作成しました。私は達成することができるよstep 1とstep 4、どちらもstep 2もstep 3。中間(一時)ファイルを作成する必要があるのだろうか。中間ステップの出力を変数に保存しようとしましたが、成功しませんでした。どんな助けも、起こりうる間違いとこれを行う最善の方法に関する助けになるでしょう。 #!/bin/bash # creating the Latex code for a test procedure awkcommand= "/usr/bin/awk ' $1 == "Group" {printf("\\section{%s %d}\n", $1, $2); next} { title = sep = "" for (i=1; i<=NF; i++) if ($i ~ /^[0-9][0-9][0-9]$/) { printf("\\subsection{%s} \n\\TestDetails{%d}\n", …
12 shell-script  awk 

4
awkまたはsedで最初の列で行を連結します
awk次の状況でどのように使用できますか? 同じ列で始まる行を連結します。結合後は最初の列のみが保持されます(この場合aaaはwww、、hhh)。 ファイルはスペースまたはタブで区切られます。 入力例: aaa bbb ccc ddd NULL NULL NULL aaa NULL NULL NULL NULL NULL NULL aaa bbb ccc NULL NULL NULL NULL www yyy hhh NULL NULL NULL NULL hhh 111 333 yyy ooo hyy uuuioooy hhh 111 333 yyy ooo hyy NULL 望ましい出力: aaa bbb ccc …

8
無制限の列の交換
列のあるファイルがあります。例については、以下を参照してください。 a b c ... z 1 2 3 ... 26 最初の列が最後になり、2番目の列が最後になる前の列になるように、すべての列を交換したい...など z y x ... a 26 25 24 ... 1 これを行う1つのライナー(awkまたはsed)がありますか?列が数列しかないときに 使用できることは知っawkていますが、数千列のファイルでこれを実行できるようにしたいと思います。 tacこれを行に対して完全に行います。 列に相当するものを探していると思います。 rev コラム内のコンテンツも入れ替えるため、私には役に立たなかった。

4
次の行に特定の一致が含まれていない場合にのみ、行を印刷します
完了しなかったログに記録されたアクティビティのログファイルを検索しようとしています。たとえば、「ID 1234のアクティビティを開始しています...」と記録し、成功した場合、次の行は「アクティビティ1234完了」になります。 対応する「完了」行が続かない「開始...」行を取得しようとしています。 ログファイルの例 Starting activity for ID 1234 ID 1234 completed successfully Starting activity for ID 3423 ID 3423 completed successfully Starting activity for ID 9876 ID 9876 completed successfully Starting activity for ID 99889 ID 99889 completed successfully Starting activity for ID 10011 ID 10011 completed successfully Starting …
12 grep  sed  awk 

3
リストの最後の行だけを表示する方法は?
リストを作成し、一時的な属性でファイルを並べ替えるとします。 ls -ltr -rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1 -rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2 . . . -rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000 リストの最後の行だけを取得するには、パイプチェーンのls -ltrの後ろに何を追加すればよいですか?私はsedとawkがあることを知っていますが、それらの使用方法はわかりません。何ができるかしかわかりません。
12 command-line  sed  awk  ls 

3
Awkでパターンに一致するレコードをカウントする
だから私はlast > lastloggedin最後のシステム再起動以降のクラスの最後のログインを示すファイルを作成するように言われました、そして今私は文字列myawkをlastloggedin含む行数を数える/決定する という名前のAwkスクリプトを書くように求められますCFS264。 終わったよ grep -c CFS264 lastloggedin

2
ログファイルからユーザーエージェント文字列を抽出するにはどうすればよいですか?
現在、私はこのようなコマンドを実行して、最もリクエストされたコンテンツを取得しています: grep "17\/Jul\/2011" other_vhosts_access.log | awk '{print $8}' | sort | uniq -c | sort -nr ユーザーエージェントの文字列を確認したいのですが、問題はいくつかのスペースが含まれていることです。次に、典型的なログファイルの行を示します。UAは、引用符で区切られた最後のセクションです。 example.com:80 [ip] - - [17/Jul/2011:23:59:59 +0100] "GET [url] HTTP/1.1" 200 6449 "[referer]" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30" これのためにawkより良いツールはありますか?
12 logs  awk 

3
スクリプトの配布:シバンには/ bin / gawkまたは/ usr / bin / gawkを使用する必要がありますか?
gawkは通常/ binまたは/ usr / binにありますか?私は一緒に行きます#!/usr/bin/env gawkが、引数は使用できません。現在、私はを使用してい#!/bin/gawk -fます。スクリプトは非常に長く、多数の単一引用符が含まれており、stdinで動作します。 GNU Awkマニュアルのセクション1.1.4実行可能awkプログラムでは、例では#!/ bin / awkを使用していますが、次のように続けています。 多くのシステムでawkは、/usr/binではなくにあることに注意してください/bin。買い手責任負担。 ほとんどの人は何をしますか?私は、sedは/ binで標準化されていると思われるのに対し、perlは/ usr / binで標準化されていると読みました(sedリンクと同じページですが、この投稿に3つ目のリンクを作成することはできません)。awk / gawkはどうですか?どちらがより一般的または人気があるか知っていますか?
12 awk  shebang  env 

4
awkで特定の文字の後の行からテキストを削除するにはどうすればよいですか
awkを使用して、特定の文字「;」の後のすべてのテキストを削除するにはどうすればよいですか。それは私のテキストファイルのすべての行に表示されますか?(次に、テキストでforループを実行する必要があります) Jenny,Sarah,John;North Dakota Henry,Frank;Illinois Aaron,Kathryn,Caitlin,Harris;New York

2
入力の最初のN行を削除するコマンド
バックグラウンド SSHサーバーを実行しており、このユーザーを削除する必要があります。このユーザーは、最初に強制終了する必要のあるいくつかのプロセスを現在実行しているため、削除できません。 これは、現在使用しているユーザーのすべてのプロセスIDを見つけるために現在使用しているパイプラインです。 ps -u user | awk '{print $1;}' 出力は次のようになります。 PID 2121 2122 2124 2125 2369 2370 これをパイプkill -9してすべてのプロセスを強制終了し、次のようにこの愚かなユーザーを削除できます。 ps -u user | awk '{print $1;}' | sudo xargs kill -9 しかし、これはPIDヘッダーのために機能しません: kill: failed to parse argument: 'PID' 質問 入力の最初の行を削除するには、単純なUnixコマンドが必要だと考えています。 tailこれに使用できることは承知していますが、表示する行数を正確に把握するために、入力に含まれる行数をカウントしたくありません。 headまたはtail逆のようなものを探しています(ストリームの最初/最後の部分のみを表示する代わりに、ストリームの開始/終了以外のすべてを表示します)。 注意 コマンドの| grep [[:digit:]]後に追加するだけでこの問題を解決できましたawkが、他のシナリオでは非常に役立つと思うので、ファイルの最初の行を削除する方法を探しています。
11 command-line  sed  awk  tail  head 

4
grepコマンドで文字列検索をifステートメントに入れる方法は?
2つのファイルで複数の文字列を検索したい。両方のファイルで1つの文字列が見つかった場合は、何かを作成します。1つの文字列が1つのファイルだけで見つかった場合は、別の文字列を作成します。 私のコマンドは次のとおりです: ####This is for the affirmative sentence in both files if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then ####This is for the affirmative sentence in only one file, and negative for the other one if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then それは声明を否定し、肯定する正しい方法ですか?pd …

7
間違った場所で壊れた行を修正するにはどうすればよいですか?
私のテキストファイルは次のようになります。 This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. 小文字で始まる行が続く行の末尾の改行文字を削除したい。 したがって、これは次のようになります。 This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. これどうやってするの? 編集:ここには本当に良い答えがいくつかありますが、私は最初に機能し、最も早いものを受け入れることにしました。どうもありがとうございました!

3
ヘッダー名でawkの列を印刷する
私はそのようなテキストファイルを持っています foo bar baz 1 a alpha 2 b beta 3 c gamma awkを使用して、1や3などの特定の列を印刷できます{print $1, $3}が、代わりに、列のヘッダーを指定して、印刷する列を指定します{print $foo, $baz}。これは便利なので、ファイルを開いて列を数え、どの列がどれかを確認する必要はありません。また、列番号や順序が変わった場合にスクリプトを更新する必要もありません。これをawk(または別のシェルツール)で実行できますか?

2
ファイル内の各文字の(数値)ASCII値を出力するにはどうすればよいですか?
各文字のASCII数値をテキストファイルに出力する方法を教えてください。と同様catですが、ASCII値のみを表示しています...(16進数または10進数で問題ありません)。 Apple(改行付き)という単語を含むファイルの出力例は次のようになります。 065 112 112 108 101 013 004
11 linux  bash  sed  awk  terminal 

2
awkメモリーリーク?
これに基づいて、コマンドを実行しています < /dev/urandom hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | sox -traw -r44100 -b16 -e unsigned-integer - -tcoreaudio このコマンドの実行中、awkが使用するメモリは継続的に増加します。たとえば、生のオーディオデータ75MBが再生されるまでに500MBを超えるメモリを消費します。パイプライン内の他のすべてのコマンドは、一定量のメモリを維持します。 awkがこのメモリを使用しているのは何ですか?意図されたストリーム処理を一定量のメモリのみを使用して行う代替策はありますか? awkバージョンが重要な場合: ⑆ awk --version awk version 20070501 トーマスディッキーの答えに基づいてテストしたコマンドは次のとおりです。 < …
11 awk  osx  memory 

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