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

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

3
awk配列内のすべてのコンテンツを表示する方法は?
私の理解では、awk配列はpython dictのようなものです。 そこで、以下のコードを書き留めて調べてみます。 awk '{my_dict[$1] = $2} END { print my_dict}' zen そして私は得た: awk: can't read value of my_dict; it's an array name. 最初の列は数字ではないので、配列の内容全体をどのように読み取ることができますか?
41 awk 

2
日付出力から先行ゼロを削除する
dateコマンドのエイリアスを作成して、次の形式で日付を表示しました。 2013.06.14.12.10.02 このコマンドを使用して: alias date = date +"%Y.%m.%d.%H.%M.%S" 出力から先行ゼロを削除することを除いて、すべてがうまく機能します。 フォーマットを変更してそれを実現する方法はありません。私はそれをsed、やなどの他のコマンドに出力をパイプすることによってのみ行うことができると思いますawk。 私が実行しているOSはUbuntu 12.04.2 LTSです。
40 sed  awk  date 

6
ディレクトリ内のすべてのファイルの行数を人間が読める形式でどのようにリストしますか。
大きなcsvファイルを含むディレクトリとサブディレクトリのリストがあります。これらのファイルには約5億行あり、それぞれがレコードです。私が知りたいのですが 各ファイルの行数。 ディレクトリ内の行数。 合計何行 最も重要なことは、「人間が読める形式」でこれが必要なことです。12345678ではなく12,345,678 3つの方法でこれを行う方法を学ぶといいでしょう。プレーンバニラバッシュツール、awkなど、およびperl(またはpython)。
40 bash  awk  python  perl 

2
awk '!a [$ 0] ++'はどのように機能しますか?
このワンライナーは、事前ソートなしでテキスト入力から重複行を削除します。 例えば: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ インターネットで見つけた元のコードは次のとおりです。 awk '!_[$0]++' _Perlのようにawkで特別な意味を持つようになったので、これはさらに困惑しましたが、それは単なる配列の名前であることが判明しました。 これで、ワンライナーの背後にあるロジックがわかりました。 各入力行はハッシュ配列のキーとして使用されるため、完了すると、ハッシュには到着順に一意の行が含まれます。 私が学びたいのは、この表記がawkによってどのように解釈されるかです。たとえば、バング記号(!)の意味とこのコードスニペットの他の要素。 どのように機能しますか?

3
awkを使用してテキストファイルの最初の6行/行をスキップする
テキストファイル(input.txt)の最初の6行/行をスキップし、残りをawkで処理するにはどうすればよいですか?私のawkスクリプト(program.awk)の形式は次のとおりです。 BEGIN { } { process here } END { } 私のテキストファイルは次のようなものです。 0 3 5 0.1 4.3 2.0 1.5 1.5 3.0 0.3 3.3 1.5 2.1 . . . 次から始まるファイルを処理したい: 0.3 3.3 1.5 2.1 . . .
39 awk  gawk 

12
桁区切り記号を数字で追加します
Pythonで re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke ) 番号をトリプレットで分割するには、たとえば: echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", sys.stdin.read());' 123,456,789 bash / awkで同じことをする方法は?


9
ファイルの最も長い行を印刷する方法は?
ファイル内の最も長い行を印刷する最も簡単な方法を探しています。私はいくつかのグーグル検索を行いましたが、驚くべきことに答えを見つけることができませんでした。ファイル内の最も長い行の長さを頻繁に印刷しますが、実際に最も長い行を印刷する方法がわかりません。誰もがファイルの最長行を印刷するソリューションを提供できますか?前もって感謝します。
35 bash  awk  filter 

3
grepからawkへのパイピングが機能しない
ファイルログgrepの継続tailを試みて、n行からthワードを取得しようとしています。サンプルファイル: $ cat > test.txt <<EOL Beam goes blah John goes hey Beam goes what? John goes forget it Beam goes okay Beam goes bye EOL ^C 今私がする場合tail: $ tail -f test.txt Beam goes blah John goes hey Beam goes what? John goes forget it Beam goes okay Beam goes …
34 bash  grep  rhel  awk  tail 

3
2つの列の一致に基づいて2つのファイルをマージする方法は?
私はfile1が好きです: 0 AFFX-SNP-000541 NA 0 AFFX-SNP-002255 NA 1 rs12103 0.6401 1 rs12103_1247494 0.696 1 rs12142199 0.7672 そしてfile2: 0 AFFX-SNP-000541 1 0 AFFX-SNP-002255 1 1 rs12103 0.5596 1 rs12103_1247494 0.5581 1 rs12142199 0.4931 そして、次のようなfile3が必要です: 0 AFFX-SNP-000541 NA 1 0 AFFX-SNP-002255 NA 1 1 rs12103 0.6401 0.5596 1 rs12103_1247494 0.696 0.5581 1 …

4
ファイルの最初のnバイトを削除します
私には極端な問題があり、想像できるすべての解決策は複雑です。私のUNIX / Linuxの経験によると、簡単な方法が必要です。 の各ファイルの最初の31バイトを削除したい/foo/。各ファイルは十分な長さです。まあ、誰かが私に想像を絶する驚くほど簡単な解決策を提供してくれると確信しています。たぶんawk?

12
特定の列を名前で印刷する方法は?
次のファイルがあります。 id name age 1 ed 50 2 joe 70 列idとage列だけを印刷したい。今私はちょうど使用しますawk: cat file.tsv | awk '{ print $1, $3 }' ただし、これには列番号を知る必要があります。列番号の代わりに列の名前(最初の行で指定された)を使用できる場所でそれを行う方法はありますか?
32 awk 

10
パターン(マーカー)の前にファイルのコンテンツを別のファイルに挿入する方法は?
File1 内容: line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" File2 内容: line1-file2 "25" line2-file2 "24" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" perl / shellスクリプトの実行後、File2コンテンツは次のようになります。 line1-file2 "25" line2-file2 "24" line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" すなわち、「ポインタ」を含む行の前にFile1in の内容を貼り付けFile2ます。


5
特定の列の内容をawkに置き換える方法は?
指定:レコードには40列あります。35番目の列が35番目の列の内容と「$」記号で置き換えられるように、35番目の列を置き換えます。思いついたのは次のようなものです: awk '{print $1" "$2" "...$35"$ "$36...$40}' 動作しますが、列の数が10kほど大きい場合は実行できないためです。これを行うためのより良い方法が必要です。

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