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

AWKはテキスト処理言語です。主に、構造化データの操作と処理、およびレポートの生成に使用されます。

5
awk printステートメントをチェーンする方法は?
さて、ここに簡単な例を示します。3つの手順でホストのIPV4を分離します。 ip -br a lo UNKNOWN 127.0.0.1/8 ::1/128 eth0 DOWN wlan0 UP 192.168.0.101/24 fe80::9fcd:45fb:1e0f:a1cc/64 ip -br a | awk '/wlan0/ {print $3}' 192.168.0.101/24 ip -br a | awk '/wlan0/ {print $3}' | awk -F '/' '{print $1}' 192.168.0.101 awk(の出力を次のインスタンスにパイプする)の2番目のインスタンスを呼び出す代わりに; どのようにすべてを一度に行うことができますか? 言いたかったのは、質問はの出力を解析することではありませんip。質問を説明するのに役立つ簡単な例が必要でした。これが最初に思いついたものでした。実際の質問はタイトルにまとめられています。 とにかく、それが価値があるもののために(私はそれをチェックする必要がありますが、私はかなり確信しています); これは(最近の)過去に私がやったことです: ip -br a s dev wlan0 | …

3
シェルスクリプト変数をAWKコマンドに渡す
次のコマンドを含むシェルスクリプトを呼び出すことができます。 awk -F $'\xE7' '{OFS ="¬"} { $3 = sprintf("%010s". $3) ; print $0 }' > outputfile ただし、このコマンドにシェルスクリプト変数を渡して$3、AWKコマンド内の置換に使用できるようにしたいと思います。 このAWKコマンドにシェルスクリプト変数を渡すにはどうすればよいですか?


5
行番号の長いリストに基づいて行を除外する
ファイルに入れたくない行番号の長いリスト(35389208)があります。行番号とは、ファイル内の行(たとえば、行277)を意味します。不要な行番号のリストは次のようになります。 277 278 279 280 289 290 291 292 321 322 .... これらの行番号をファイルから除外する最良の方法は何ですか?perl sedまたはawk(またはその他)のソリューション。
3 command-line  sed  perl  awk 

2
特定の列でawk検索
このようなファイルがあります(さらに多くの行があります)。 BeginJobID = S0065546 JESMSGLG(1/281)jname = CICWCMWDキュー= EXECUTION JESMSGLG(2/281)BeginJobID = S0065568 jname = CICWWUWD queue = EXECUTION JESMSGLG(3/281)jname = CICWMCWD BeginJobID = S0065569 queue = EXECUTION JESMSGLG(4/281)jname = CICWTQ11キュー=実行BeginJobID = S0065599 BeginJobID = S0065600 JESMSGLG(5/281)キュー=実行jname = CICWFA11 JESMSGLG(6/281)jname = CICWFA21 BeginJobID = S0065601 queue = EXECUTION JESMSGLG(7/281)jname = CICWFY11 BeginJobID …
2 awk 


3
一致する各行の先頭にスペースを追加します
たとえば、最初に開始する行があり、それが前の行と並ぶために必要な場合、どうすれば最も効果的にそれを行うことができますか。 preceeding line line I need to add spaces to したがって、次のようになります。 predeeding line where it needs to start. 開始する必要がある場所からちょうど8スペース離れています。vim、awk、sed、または別のツールでこれを行うにはどうすればよいですか? その他の要件/注意: これらの行はファイル内で複数回発生し、100〜500行の間でのみ変更を行います。
2 vim  sed  awk  text-editing 

2
Webサイトのデータで直接tailを使用するか、別のユーティリティが必要ですか?
RRDデータベースにデータを入力するために、Webサイトのデータの最後の行から単一のデータフィールドを抽出することを計画しています。Linuxを実行しています。 Webサイトは、http://www.ogimet.com/cgi-bin/getsynop?begin = 201309250000&block = 03895(空港の気象データ)です。 質問:Webサイトからデータの最終行tailを直接読み取るために使用できますか、または別のユーティリティを使用tailしてデータを読み取ってから最終行を取得する必要がありますか?awkその行からデータのn番目のフィールドを分離するための最良のユーティリティはありますか?(私はPerlに慣れていません)。 ありがとう。ナイジェル。
2 linux  awk  tail 

1
grep、sed、またはawkを使ってその間にある単語を見つけますか? .el7までパッケージ名を抽出できるようにしたい
私はスクリプト(bash /コマンドライン)を書いていて、.el7までパッケージ名を抽出できるようにしたいです。 x=dbus-sharp (パッケージ名の例 - 変更されています) テキストファイルの例: Building dbus-sharp-0.7.0-11.fc22 for epel7 Created task: 7970206 ... 0 free 1 open 1 done 0 failed 7970225 buildArch (dbus-sharp-0.7.0-11.el7.src.rpm, ppc64): free 7970223 buildArch (dbus-sharp-0.7.0-11.el7.src.rpm, x86_64): open (buildhw-03.phx2.fedoraproject.org) ... 基本的に今欲しい y=dbus-sharp-0.7.0-11.el7 grep、sed、またはawkを使用する必要があるかどうかは関係ありません。 私は似たような解決策のために何の幸運なグーグルも持っていませんでした。 私が試した例: [me@h dbus-sharp]$ echo "Here is a String" | grep -Po …
1 bash  grep  sed  awk 

1
特定の文字を無視して、awkの出力をソートするにはどうすればよいですか?
私はラップトップに持っている中国語フォントを印刷し、で参照できる名前に関して出力をソートしようとしていLaTeXます。これは、次のコマンドで実行できます。 fc-list :lang=zh-cn | awk -F": " '{$1=""; print}' | sort フォントリストを検索し、最初に出現した後:、フォントの名前が表示される単一のスペースを見つけます。それからもちろんソートします。 ここでの問題は、のような名前のフォントがあり、それが.PingFang SC最前面にソートされており、残りとは一貫性がないことです。期間を無視してソートする方法はありますか? ピリオドを削除すると、フォントの実際の名前が変更され、参照が難しくなります。

2
末尾なしの反転印刷
DNSゾーンを呼び出すbashファイルfqdnがあり、逆に出力する必要があるものをパイプアウトしました。 以下のスニペットは.、インポート、csv(コンマ区切り)形式を作成したくない最後に試用版を取得することを除いて、それで問題ありません。 ... | awk -F'.' '{for (i=NF;i>0;i--){printf $i"."};printf "\n"}' ソースの例: abc.def,ghi.com hjd.dhjs.dhuj.oiuehj.ksjdhf.com 望ましい結果: com.ghi.def.abc com.ksjdhf.oiuehj.dhuj.dhjs.hjd 現在の結果: com.ghi.def.abc. com.ksjdhf.oiuehj.dhuj.dhjs.hjd.
1 bash  csv  awk 

2
AWK-変数と関数の結果を変数に追加する
AWKに変数と関数の結果を追加したい。入力: t t t t a t a ta ata ta a a 脚本: { key="t" print gsub(key,"")#<-it's work b=b+gsub(key,"")#<- it's something wrong } END{ print b}#<-so this is 0 出力: 4 2 2 0#<-the last print
1 awk 

1
awkでbashループの効率を上げる
1つのファイルの2番目の列から抽出されたテキストを使用して、かなり大きなテキストファイル(> 300,000行)を作成し、各行の先頭にテキストを追加して、最後に新しいファイルに書き出します。 次のwhileループがあり、正常に動作しています。ただし、実行に時間がかかり、実行ごとに数分かかります。私は、もっと速いawkのより良いレシピ/方法があると思います。誰でもより速い方法を提案できますか。 SOURCEFILEの例 useless9 important1 more useless stuff useless8 important2 more useless stuff useless7 important3 more useless stuff useless6 important4 more useless stuff ソースファイルからテキストを抽出し、最終結果ファイルを出力します。 while read line; do mytext=`echo $line | awk -v RS='\r\n' '{print $2}'` echo "$PrePattern $mytext $PostPattern" >> $OUTFILE done < $SOURCEFILE OUTFILE PrePattern text important1 …
1 bash  speed  awk 

1
CSV行の区切り文字数と印刷行番号
50000行以上のCSVファイルがあります。 これは内容のほんの一例です。 Dcccrev,wefrwvfr,rfregt,wr4f,rfvrv,ecxwec,ecfrv,rfrf Grge,gtgr,frfrv,gthtgv,gerg5tgvrt,rvrfvtg,tgt,frfrf,rfrf Drfrfr,t,tgtg,rf,rgr,grtg,tgt,gtgtg,rg . . . 私の仕事は:行の中のセパレータの数 "、"が7に等しくない場合、行番号を表示しなければなりません。 echoやcatを使わずに、このタスク用にawkまたはperl oneライナーを作成することは可能ですか?
awk  perl 

1
gawkで週の異なる曜日を持つ日付に基づいて週番号を取得
週の初めの日にawkを使ってLinuxの週番号を取得するにはどうすればいいですか?の date コマンドは私に週番号を与えることができます +%V しかしそれは月曜日(1-53)に基づいています +%U (日曜日、0〜53) 私はこれをやろうとしました: date -d "ddmmyy+2days" +%Vしかし、結果は正しくありません。私は週の最初の日が土曜日に基づいていることを望みます。 ありがとう 編集:条件を追加します 私の場所での週の最初の日は土曜日です、そして最初の週は最も近い土曜日までの日の数に依存します。今週の土曜日の直前の日数が4日未満の場合は、昨年の週(52/53)までカウントされます。年末の週と同じです。
linux  date  awk 

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