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

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


8
文字列内の1文字のみを小文字/大文字にawkまたはsedしますか?
いくつかの文字列で1文字のみを大文字/小文字にする方法はありますか? 入力例: syslog_apr_24_30 syslog_mar_01_17 望ましい出力: syslog_Apr_24_30 syslog_Mar_01_17 月の大文字で始まることに注意してください。 私は試しましたawkが、それを機能させるのに十分ではありません。
13 bash  sed  awk 

3
特定の文字列を含む行のみをsedする方法は?
入力: Select ASDF 325 sdfg sdflk lk Select TRG 46sdg rasdftz fsgs 45 Select ASDF 6ffg sdfg 4456 sdrg 出力: Select ASDF 325 XXXX sdflk lk Select TRG 46sdg rasdftz fsgs 45 Select ASDF 6ffg XXXX 4456 sdrg 要するに、「sed」「sdfg」を「XXXX」にする必要があります。 ただし、「Select ASDF」文字列を含む行のみ。これを行うにはどうすればよいですか?(sed、awkなど:\)
13 sed  awk 

4
awkコマンドを使用したBEGINおよびEND
awkのマニュアルによると、BEGINとENDは入力の照合には使用されず、起動とクリーンアップの情報をawkスクリプトに提供するために使用されます。以下に例を示します。 ls -l | \ awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }' Files found: amd.conf antivir.conf xcdroast.conf xinetd.conf まず、出力する文字列を出力します。次に、入力のパターンマッチをチェックします。入力はaまたはxで始まり、その後に任意の文字が1回以上続き、その後に.confが続きます。一致した場合、9列目が出力されます。 ここでbeginを使用せざるを得ないという事実は、それはawkがBEGINまたはENDを含む最大1つの印刷関数しか使用できないことを意味しますか?そうでない場合、キーワードBEGINなしで最初にprint関数を使用できないのはなぜですか?BEGINは不要なようです。
13 awk 

2
欠損値の空白スペースをゼロに置き換える
約30K行のinput.txtタブ区切りテキストファイルがあります。各行(s1..s30K行)で欠損値(つまり、空白)をチェックし、欠損値にゼロ値を入力します。out.txtを参照してください。 input.txt id no1 no2 no3 no4 s1 23 34 45 12 s2 4 4 s3 4 8 0 out.txt id no1 no2 no3 no4 s1 23 34 45 12 s2 0 4 4 0 s3 4 0 8 0

3
awk-特定の列の1文字だけを置き換える
次のようなファイルがあります。 2018.01.02;1.5;comment 1 2018.01.04;2.75;comment 2 2018.01.07;5.25;comment 4 2018.01.09;1.25;comment 7 .2番目の列のすべてのドットをコンマで置き換えたいのです,が、これをsed 's/\./\,/g' fileどのように使用できるsedか、できれawkば2番目の列にのみ適用するので、出力は次のようになります。 2018.01.02;1,5;comment 1 2018.01.04;2,75;comment 2 2018.01.07;5,25;comment 4 2018.01.09;1,25;comment 7

3
100Gを超えるディスクサイズを検出するこのフィルターを短縮できますか?
私の目標は、lsblkから100Gを超えるディスクを取得することです。 私はそれを動作させていますが、それは厄介です。短縮できると確信しています。lsblkとはまったく異なるものを使用するか、awkを使用して人間が読み取れる数値を直接フィルター処理することができます。 ここに私がまとめたものがあります: lsblk | grep disk | awk '{print$1,$4}' | grep G | sed 's/.$//' | awk '{if($2>100)print$1}' 100Gより大きいディスクのsdxおよびnvmexxx部分のみを出力します。まさに私が必要なもの。 私はそれで満足していますが、あなたからもっと学びたいと思っています。
12 awk  grep  disk  lsblk 

6
各行にランダムな文字列を追加するにはどうすればよいですか?
実行中に各行にランダムな文字列を追加しようとしています: awk '{print "name" "'$ran'" "-"$0}' 'myfile' その前に、ランダムな文字列が生成されます: ran="$(tr -dc '[:alnum:]' </dev/urandom | head -c 6)" 問題は、各行に同じランダム文字列を出力することです: nameGQz3Ek- nameGQz3Ek- nameGQz3Ek- 行ごとに異なるランダム文字列を取得するにはどうすればよいですか?
12 awk 


8
最初の行に基づいて列を並べ替える方法は?
非常に大きなデータセット(1000行と700000列)の列を並べ替える必要があります。例として、私の列はcol1 col4 col3 col2のようにランダムに配置され、ソートする必要があります。 私はいくつかのコマンドを試しましたが、成功しませんでした。 例: ID M2 M5 M8 M1 M3 M9 .....M7000000 Animal1 1 0 2 1 0 2 .....1 Animal2 0 1 2 0 1 1 .....0 Animal3 2 1 0 1 2 1 .....0 . . . . Animaln この例では、ドットは、列と行がたくさんあることを意味します。繰り返しますが、列を次のようにソートする必要があります。 ID M1 M2 M3 M4 M5 …


3
2つのファイルを一度に1列ずつマージする
次の形式の2つの大きなファイル(3000列、15000行)があります file1(タブ区切り): 1/0 0/0 0/0 0/0 1/1 0/0 1/1 0/1 0/0 file2(タブ区切り): 3 5 2 1 7 10 3 4 3 各ファイルの最初の列の値を「:」区切り文字で組み合わせてから、2番目、3番目などの列に移動します。必要な出力(タブ区切り): 1/0:3 0/0:5 0/0:2 0/0:1 1/1:7 0/0:10 1/1:3 0/1:4 0/0:3 効率は重要ではないため、どの言語でも問題ありません。これが以前に尋ねられた場合、私は謝罪します。

6
awkを使用して列を並べ替える
私はcsvファイルの7列目を最後に移動しようとしています awk -F '{print $1,$2,$3,$4,$5,$6,$8,$9,$10,$11,$7}',OFS= "$file" $ fileはディレクトリ内の.csvファイルです。ただし、出力は awk: ^ syntax error 誰でもこのエラーを修正する方法を知っていますか?

3
sedまたはawkを再度呼び出さずに、文字列からドット文字を削除するにはどうすればよいですか?
次のhostlist.txtようなテキストを含むというファイルがあります。 host1.mydomain.com host2.mydomain.com anotherhost www.mydomain.com login.mydomain.com somehost host3.mydomain.com 次の小さなスクリプトがあります。 #!/usr/local/bin/bash while read host; do dig +search @ns1.mydomain.com $host ALL \ | sed -n '/;; ANSWER SECTION:/{n;p;}'; done <hostlist.txt \ | gawk '{print $1","$NF}' >fqdn-ip.csv 出力先fqdn-ip.csv: host1.mydomain.com.,10.0.0.1 host2.mydomain.com.,10.0.0.2 anotherhost.internal.mydomain.com.,10.0.0.11 www.mydomain.com.,10.0.0.10 login.mydomain.com.,10.0.0.12 somehost.internal.mydomain.com.,10.0.0.13 host3.mydomain.com.,10.0.0.3 私の質問は.、コンマの直前を削除せずにsed、gawk再度呼び出すことはできませんか?ドットを取り除く既存の呼び出しsedまたはgawk呼び出しで実行できるステップはありますか? hostlist.txt 数千のホストが含まれるので、スクリプトを高速かつ効率的にしたいです。

4
grepを使用して()の前の文字を抽出します
文字 '('の前の文字を抽出する必要があります。ファイル構造は次のとおりです。 バラ(いい) デイジー() リリー(悪い)罰金 ひまわり() 次の形式の出力ファイルが必要です。 rose daisy lilly sunflower 誰でもこのコマンドを伝えることができます..... awk、grep、またはsedが望ましい...
12 sed  awk  grep 

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