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

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

3
その行または次の行に特定の文字列が含まれていない場合に行を印刷する方法
Input.txt: 8B0C remove 8B0D remove 8B0E remove 8B0F 8B10 remove 8B14 remove 8B15 remove 8B16 remove 8B17 remove 8AC0 8AC1 remove 8AC2 remove 8AC3 remove 8AE4 8AE5 8AE6 remove 望ましい出力: 8B0F 8AC0 8AE4 8AE5 その行または次の行に「削除」が含まれていない場合、その行を印刷したい。私はソラリス5.10、KSHを使用しています。

3
_PROXYに一致するすべてのENV変数の設定を解除します
私は一致するすべての環境変数を設定解除しようとしています_PROXY: env | grep -i _proxy | column -t -s '=' | awk '{ print $1 }' | grep -iv 'no_proxy' | xargs -0 -I variable unset variable しかし、それはで失敗していxargs: unset: No such file or directoryます。 ただし、に変更しようとするunsetとecho、すべてが期待どおりに機能しているように見えます。設定されている変数のリストが表示されます。 env | grep -i _proxy | column -t -s '=' | awk '{ print …


1
^#$をawkのレコード区切り文字として使用する方法は?
awkに#行の中で文字を単独でレコードセパレータとして使用するようにするにはどうすればよいですか 問題は、行の先頭ではなくファイルの先頭に一致するRS="^#$"ため、あなたは言うことができません。また、行の先頭にない文字に一致するため^、RS="#\n"機能しません#。 $ data='# first record, first field first record, second field # second record, first field# second record, second field ' 次に、次のコマンドを使用して、各レコードの最初のフィールドを出力しますRS="#\n"。 $ printf "%s" "$data" | awk ' BEGIN { RS="#\n"; FS="\n" } /./ {print $1} ' first record, first field second record, first field second record, second …
8 awk 

3
awk +最初の行から一致する単語までの行を出力する
マッチワードまでのすべての行をファイルから出力したい 例えば PPPという単語まですべての行を印刷したい 最初の行はAAA(任意の単語)とは異なるはずであることに注意してください cat file.txt AAA ( the first line/word chuld be any word !!!!! ) BBB JJJ OOO 345 211 BBB OOO OOO PPP MMM ((( &&& これを入手する必要があります AAA BBB JJJ OOO 345 211 BBB OOO OOO PPP 他の例(KJGFGHJまで印刷したい) cat file.txt1 HG KJGFGHJ KKKK だから私は取得する必要があります HG KJGFGHJ
8 linux  bash  awk  ksh 

5
タイムスタンプを含むファイルから重複する行を削除する
この質問/回答には、ファイル内の同一の行を削除するためのいくつかの良い解決策がありますが、それ以外の場合は重複する行にタイムスタンプがあるため、私の場合は機能しません。 重複を判断するときに、行の最初の26文字を無視するようにawkに指示することは可能ですか? 例: [Fri Oct 31 20:27:05 2014] The Brown Cow Jumped Over The Moon [Fri Oct 31 20:27:10 2014] The Brown Cow Jumped Over The Moon [Fri Oct 31 20:27:13 2014] The Brown Cow Jumped Over The Moon [Fri Oct 31 20:27:16 2014] The Brown Cow Jumped Over The …

4
ifステートメントのあるawk
awkを使用してファイルから印刷しようとしていますが、出力が空です。これが私のコードです accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts done < Accounts 私もこれを試しました: accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } …
8 shell  scripting  awk 

2
オプションとなる可能性のある部分を含むテキストのブロックのグレッピング
非常に大きなログファイル、たとえばA.logにイベントを説明する複数のエントリがあります。ログファイルのイベントエントリで2つのことを実行したいと思います。 そのような各エントリの出現回数をカウントします(これは必須の要件ではありませんが、持っていると便利です)。 実際のエントリを別のファイルに抽出し、後で調べます。 典型的なイベントエントリは次のようになり、その間に他のテキストがあります。以下の例では、2つのイベントエントリがあり、最初のエントリには2つのDataChangeEntry ペイロードが含まれ、2番目のイベントには1 つのDataChangeEntry ペイロードが含まれています。 Data control raising event :DataControl@263c015d[[ #### DataChangeEvent #### on [DataControl name=PatternMatch_LegendTimeAxis, binding=.dynamicRegion1. beam_project_PatternMatch_dashboard_LegendTimeAxis_taskflow_LegendTimeAxis_beamDashboardLegendTimeAxisPageDef_beam_project_PatternMatch_dashboard_LegendTimeAxis_taskflow_LegendTimeAxis_beamDashboardLegendTimeAxis_xml_ps_taskflowid.dynamicRegion58. beam_project_PatternMatch_view_LegendTimeAxis_taskflow_LegendTimeAxis_beamVizLegendTimeAxisPageDef_beam_project_PatternMatch_view_LegendTimeAxis_taskflow_LegendTimeAxis_beamVizLegendTimeAxis_xml_ps_taskflowid.QueryIterator] Filter/Collection Id : 0 Collection Level : 0 Sequence Id : 616 ViewSetId : PatternMatch.LegendTimeAxis_V1_0_SN49 ==== DataChangeEntry (#1) ChangeType : UPDATE KeyPath : [2014-06-26 06:15:00.0, 0] AttributeNames : [DATAOBJECT_CREATED, …

8
行の残りのGrep…試合後
次の構造を持つ2行のみを含むファイルがあります。 $ cat /tmp/pwpower.log 000D6F0000D34227, -114.10 000D6F0001A405C4, -130.09 値は私の太陽光発電所の電力値です。負の値は生成を意味します。 私はgrep / sed / awkを介して抽出された値が必要です-最も賢い方法は何でも。両方の値を別々に、マイナス記号なしで抽出する必要があります。 私が今やっているのはちょっとばかげていますが、うまくいきます。多くの人が私にとってより賢い方法を持っていると確信しています:-)もちろん、ここでは値とマイナスのみを表示しています。 最初の値を取得するには: cat /tmp/pwpower.log |grep -o "\-.*" | head -n 1 2番目の値を取得するには: cat /tmp/pwpower.log |grep -o "\-.*" | tail -n1 そして関連する質問、これらのSTRINGを取得して変換してSUMを計算できるようにする簡単な方法はありますか?

3
Linuxで最速の `uniq`ツール
大きなテキストファイル(1.5 G)があります。 Linuxで最も高速で信頼性の高いツールを教えてください。 私は通常使用します: awk '!x[$0]++' file.txt しかし、htopコマンドを使用すると、メモリ使用量が増加していることがわかります。 巨大なファイルで最も速くて信頼性の高いものを知りたい。 uniq? sort? sed? awk? どうして?
8 sed  awk  memory  sort  uniq 

2
awkで2つの列を乗算する方法は?
入力ファイルで列1と列2(ファイルの終わりまで)を乗算し、1つの列と3つの列を別々のファイルに出力する必要があります。 input.txt: 1 677679866 2 121867616 3 49413198 4 40415982 output.txt: 1 677679866 2 243735232 3 148239594 4 161663928


5
一致がn回出現した後の行を出力する
次のファイルの4598行目を表示しようとしています。事実上、一致がn回出現した後に行を表示したい。この場合、の3番目の出現後の行<Car>。これについてどうすればよいですか? <Car> 10456 </Car> <Car> 70192 </Car> <Car> 4598 </Car>

3
1行から区切り文字なしの固定幅レコードを抽出する
区切り文字のない非常に長い1行のテキストを含む単一のファイルからテキストの文字列を抽出する必要があります。以下のサンプル行を使用すると、これらは以下の既知の事実です。 ??????? A1XXXXXXXXXX ??????? B1XXXX ?????? A1XXXXXXXXXX ?????? C1XXXXXXX 1. It contains 38 fixed width record types 2. The record marker is a 7 alphanumeric character followed by, for example, ‘A1’. 3. Each record type has varying widths, for example, A1 record type will have 10 characters following it, if …

2
試合と試合の前の1行をgrep
zzzzzzzzz aaaaaaaaa bbbbbbbbb & ccccccccc & ddddddddd hhhhhhhhh eeeeeeeee fffffffff & ggggggggg & 上記の行で、私が欲しいのはgrep/ sed/ awk(どのメソッドでもかまいません)&記号とその上に1行追加された行です。たとえば、必要な出力は次のようになります。 aaaaaaaaa bbbbbbbbb & ccccccccc & eeeeeeeee fffffffff & ggggggggg & 以下は私が運なしで試したことです。 egrep "&" | -b 1 file.txt

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