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

AWKは、テキスト処理用に設計されたインタープリター型プログラミング言語であり、通常、データ抽出およびレポートツールとして使用されます。AWKは主にUnixシステムで使用されます。

24
AWKを学ぶ理由はまだありますか?
私は常に問題の正しい解決策を使用したいので、古いツールを含め、新しいツールを常に学習しています。 それでも、それらのいくつかを学ぶ理由はまだあるのだろうか。awkたとえば、私には興味深いですが、単純なテキスト処理の場合は、、、、などを使用できますがgrep、複雑なテキスト処理の場合はcut、sedPythonを使用します。 だからといって、それが強力で便利なツールではないという意味ではありません。しかし、新しいツールを学ぶには時間と労力がかかるので、それだけの価値はありますか?

8
awkを使用して一致した正規表現パターンを印刷する方法は?
を使用awkして、ファイル内で正規表現パターンに一致する単語を見つける必要があります。 私は唯一のパターンと一致する単語を印刷したいです。 したがって、行にある場合、私は: xxx yyy zzz そしてパターン: /yyy/ 取得したいだけです: yyy 編集:私は次のようなものを書くことができたクルミのおかげで: awk '{ for(i=1; i<=NF; i++) { tmp=match($i, /[0-9]..?.?[^A-Za-z0-9]/) if(tmp) { print $i } } }' $1 そして、これは私が必要としたものです:)どうもありがとう!
109 regex  awk 

16
awkで最初のフィールドを除くすべてを印刷する
次のようなファイルがあります。 AE United Arab Emirates AG Antigua & Barbuda AN Netherlands Antilles AS American Samoa BA Bosnia and Herzegovina BF Burkina Faso BN Brunei Darussalam そして、順序を逆にして、最初に$ 1を除くすべてを印刷し、次に$ 1を印刷したいと思います。 United Arab Emirates AE 「フィールド1以外のすべて」のトリックを実行するにはどうすればよいですか?
108 perl  awk  sed 

6
列値条件でawkを使用する
私はAWKプログラミング言語からawkを学んでおり、例の1つに問題があります。 $ 2が値(たとえば1)と等しい場合に$ 3を出力したい場合は、次のコマンドを使用して問題なく動作します。 awk '$2==1 {print $3}' <infile> | more しかし、1を別の検索条件(たとえばfindtext)で置き換えると、コマンドは機能しません。 awk '$1== findtext {print $3}' <infile> | more これは出力を返さず、入力ファイルに「findtext」が存在することを確認しています。 私もこれを試しましたが、うまくいきません: awk '$1== "findtext" {print $3}' <infile> | more これが 'test'という名前の私のテストファイルで、スペースで区切られた9行と8フィールドがあります。 1 11 0.959660297 0 0.021231423 -0.0073 -0.0031 MhZisp 2 14 0.180467091 0.800424628 0 0.0566 0.0103 ClNonZ 3 19 …
108 linux  shell  awk 



6
sedまたはawk:パターンに続くn行を削除
sed(または同様のツール-awkなど)でパターンと数値範囲をどのように混在させるのですか?私がしたいことは、ファイル内の特定の行を照合し、続行する前に次のn行を削除し、それをパイプラインの一部として実行することです。
105 unix  sed  awk 

11
sed、awk、またはgawkを使用して、一致するものだけを印刷する方法
sed、awk、またはgawkを使用して検索と置換などを行う方法について、多くの例とmanページを参照しています。 しかし、私の場合、特定の値を抽出するためにテキストファイルに対して実行する正規表現があります。検索と置換を行いたくありません。これはbashから呼び出されています。例を使用してみましょう: 正規表現の例: .*abc([0-9]+)xyz.* 入力ファイルの例: a b c abc12345xyz a b c これは簡単に聞こえますが、sed / awk / gawkを正しく呼び出す方法がわかりません。私が望んでいたことは、私のbashスクリプト内からです: myvalue=$( sed <...something...> input.txt ) 私が試したことは次のとおりです。 sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing
100 regex  unix  sed  awk  gawk 

8
awk substrを使用して最後のフィールドを取得する
awkファイルへの絶対パスを指定して、ファイルの名前を取得するために使用しようとしています。 たとえば、/home/parent/child/filename取得したい入力パスが与えられたとき、filename 私は試しました: awk -F "/" '{print $5}' input 完璧に動作します。 ただし、$5入力が次の構造の場合は正しくないハードコーディングです。 /home/parent/child1/child2/filename したがって、一般的な解決策では、常に最後のフィールド(ファイル名になります)を取る必要があります。 awk substr関数でこれを行う簡単な方法はありますか?
99 unix  awk  substr 

6
awkのタブ区切り値
TAB区切りの文字列から最初の列を選択するにはどうすればよいですか? # echo "LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01" | awk -F'\t' '{print $1}' 上記は、期待どおりに「LOAD_SETTLED」だけでなく、行全体を返します。 更新: タブ区切りの値の3番目の列を変更する必要があります。以下は動作しません。 echo $line | awk 'BEGIN { -v var="$mycol_new" FS = "[ \t]+" } ; { print $1 $2 var $4 $5 $6 $7 $8 $9 }' >> /pdump/temp.txt ただし、区切り文字がタブではなくコンマの場合、これは期待どおりに機能します。 echo $line | awk -v var="$mycol_new" …
90 awk 

7
列3によるawkソートの使用方法
私はこのようなファイル(user.csv)を持っています ip,hostname,user,group,encryption,aduser,adattr ユーザーごとに並べ替えられたすべての列を印刷したい、 試しましたがawk -F ":" '{print|"$3 sort -n"}' user.csv、動作しません。
90 awk 



11
区切り文字に基づいて1つのファイルを複数のファイルに分割します
-|各セクションの後に区切り文字として1つのファイルがあります... unixを使用してセクションごとに個別のファイルを作成する必要があります。 入力ファイルの例 wertretr ewretrtret 1212132323 000232 -| ereteertetet 232434234 erewesdfsfsfs 0234342343 -| jdhg3875jdfsgfd sjdhfdbfjds 347674657435 -| ファイル1で期待される結果 wertretr ewretrtret 1212132323 000232 -| ファイル2で期待される結果 ereteertetet 232434234 erewesdfsfsfs 0234342343 -| ファイル3で期待される結果 jdhg3875jdfsgfd sjdhfdbfjds 347674657435 -|
88 linux  unix  awk  split 

5
grep出力にファイル名と行番号を表示する
grepを使用してrailsディレクトリを検索しようとしています。特定の単語を探しています。grepでファイル名と行番号を出力したいと思います。 これを行うgrepフラグはありますか?私はの組み合わせを使用しようとしている-nとし-lたが、これらはないか数字で、ファイル名をプリントアウトするか、単に簡単に読み取ることができない端末にテキストの多くをダンプしています。 例: grep -ln "search" * それをawkにパイプする必要がありますか?
87 awk  grep 

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