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

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

5
sedによるパターンマッチングパターンの置換
ソースコードがいくつかのファイルに広がっています。 それはabcdef私が置き換える必要があるパターンを持っていpqrstuvxyzます。 パターンはAbcdef(センテンスケース)である可能性があり、それからに置き換える必要がありますPqrstuvxyz。 パターンはAbCdEf(トグルケース)である可能性があるため、で置き換える必要がありますPqRsTuVxYz。 つまり、ソースパターンの大文字と小文字を一致させ、適切な宛先パターンを適用する必要があります。 sedまたは他のツールを使用してこれを達成するにはどうすればよいですか?

2
すべてのキーボードキーをすばやくテストするスクリプト
キーボードのキーが間違っていないかノートブックを確認する必要があるので、できる限り高速化したいと思います。 この特定のタスクには何も見つかりませんでしたので、私のアイデアは、押されたキーを読み取り、すべてのキーボードのキーを知っているスクリプトです。showkeyまたはのどちらかxevで出力を達成できると思います: xev | grep keysym サンプル出力: state 0x10, keycode 46 (keysym 0x6c, l), same_screen YES, state 0x10, keycode 33 (keysym 0x70, p), same_screen YES, state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, state 0x10, keycode 51 (keysym 0x5d, bracketright), same_screen YES, state 0x10, keycode 36 (keysym 0xff0d, Return), …
14 bash  grep  awk  keyboard  stdout 

7
AWKで正規表現の貪欲さを減らす方法は?
で貪欲でないパターン(正規表現)マッチ​​ングを行いたいawk。以下に例を示します。 echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }' 短い文字列を選択する正規表現を書くことは可能ですか? @article{gjn, この長い文字列の代わりに?: @article{gjn, Author = {Grzegorz J. Nalepa}, この結果を取得したい: Author = {Grzegorz J. Nalepa}, 私は別の例を持っています: echo " 、 article {gjn、Author = {Grzegorz J. Nalepa}、" | awk '{sub(/ 、 [^、] *、/、 ""); 印刷} ' ↑↑^^^^^ …


4
各行の一部を個別のファイルに出力します
このようなファイルがあります: a AGTACTTCCAGGAACGGTGCACTCTCC b ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT c ATATTAAATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATCCACTCCACAC d ATCAGTTTAATATCTGATACGTCCTCTATCCGAGGACAATATATTAAATGGA e TTTGGCTAAGATCAAGTGTAGTATCTGTTCTTATAAGTTTAATATCTGATATGTCCTCTATCTGA a.seqsequenceを含むファイルを作成したいAGTACTTCCAGGAACGGTGCACTCTCC。同様にb.seqが含まれていますATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT。つまり、Column1を拡張子付きの出力ファイル名として使用し.seq、それに対応するcolumn2シーケンスを含める必要があります。perlスクリプトを書くことでこれを行うことができますが、コマンドラインに何かあれば役立ちます。すぐに聞いてほしい。

7
ファイルから複数の空白行を削除する方法は?
メモを作成するために使用するテキストファイルがいくつかあります-単なるプレーンテキストで、通常は単にを使用しcat >> fileます。ときどき、空白行または2行(ちょうど戻る-改行文字)を使用して、新しい主題/思考の行を指定します。各セッションの最後に、Ctrl+ Dでファイルを閉じる前に、通常、セッションを分離するためだけに多く(5〜10)の空白行(リターンキー)を追加します。 これは明らかにあまり賢いものではありませんが、この目的には役立ちます。しかし、私はたくさんの不要な空白行で終わるので、余分な行(のほとんど)を削除する方法を探しています。いくつかのオプションで直接使用できるLinuxコマンド(カット、貼り付け、grep、...?)はありますか?また、誰かがsed、awkまたはperl(私はsedまたはawkが好きですが、実際にはスクリプト言語でも)のスクリプトを考えていますか?C ++で何かを書く(実際に自分でできる)のは、やり過ぎのように思えます。 ケース#1:必要なのは、連続する2行以上(3行以上)の空白行を削除し、それらを2行だけの空白行に置き換えるスクリプト/コマンドです。ただし、複数の行(2行以上)を削除したり、複数の空白行を1つの空白行に置き換えたりできるように調整できると便利です。 ケース#2:2行のテキスト間の単一の空白行を削除するスクリプト/コマンドを使用することもできますが、複数の空白行をそのまま残します(ただし、空白行の1つを削除してもかまいません)。
14 scripting  sed  awk  perl  filter 

6
UNIXで行ごとに2つの異なるファイルを比較するにはどうすればよいですか?
File1: 123 234 345 456 File2: 123 234 343 758 期待される出力:File3: TRUE TRUE FALSE FALSE そのため、コードは2つのファイルを比較し、一致する場合は「TRUE」を出力し、一致しない場合は新しいファイルに「FALSE」を出力する必要があります。誰でもこの解決策を提供できますか?

1
Solaris 11上のPOSIX Awk?
これは多かれ少なかれ、次の2つのフォローアップの質問です。 awk '!x [$ 0] ++'ファイルを介して重複行を削除する構文エラー SunOsおよびLinuxでのawk / nawkの代替 Solaris 10(SunOS 5.10)では、次の結果が得られます。 $ type -a awk awk is /usr/bin/awk $ PATH="$(getconf PATH)" type -a awk awk is /usr/xpg4/bin/awk awk is /usr/bin/awk $ Solaris 10では、/usr/bin/awkPOSIX標準のawkはのような構文は受け付けていません'!x[$0]++'が、/usr/xpg4/bin/awkありません。これで十分です。 ただし、Solaris 11上で、唯一の存在である/usr/bin/awkにもしてgetconf PATH。があり、nawkありますoawkが/usr/bin、これらはどこからでもシンボリックリンクによって示されていないことは明らかです。 SolarisがPOSIX認定を受けていることを知って、これは驚きました。 他のPOSIX準拠システムでも動作する移植可能なコードを使用して、Solaris 11でPOSIX準拠のAwkを標準的に入手するにはどうすればよいですか?(または、存在するかどうかを確認し、存在する場合はこれらのいずれnawkかoawkを使用する唯一のオプションですか?) そのことについては、何をしている nawkとoawk?
13 awk  solaris  posix 


3
ヘッダーまたはフッターをsedまたはawkストリームに追加する方法は?
sedとawkを通過する大量の出力があります。 出力の先頭にSTARTを付け、回答の最後にENDを付けるにはどうすればよいですか? たとえば、私が持っている場合 All this code on all these lines and all these どうすれば入手できます: START All this code on all these lines and all these END ? 私の試みは: awk '{print "START";print;print "END"}' しかし、私は得た ... START All this code END START on all these lines END START and all these END

5
mawkで独自のスクリプト名を印刷する方法は?
bash $0にはスクリプトの名前が含まれていますが、awkには次の内容でmyscript.awkという名前のスクリプトを作成した場合: #!/usr/bin/awk -f BEGIN{ print ARGV[0] } 実行すると、「awk」のみが出力されます。また、i> 0のARGV [i]は、コマンドラインのスクリプト引数にのみ使用されます。それでは、スクリプトの名前、この場合は「myscript.awk」を印刷する方法は?
13 awk  scripting  mawk 

9
ファイル内のすべての行の5番目の単語を削除するにはどうすればよいですか?
ファイルの各行の5番目の単語を削除したい。 ファイルの現在のコンテンツ: File is not updated or and will be removed System will shut down f within 10 seconds Please save your work 55 or copy to other location Kindly cooperate with us D 期待される出力: File is not updated and will be removed System will shut down within 10 seconds …

9
ファイル内のすべての行のペアワイズ展開を「cat」するコマンドラインツール
次のようなファイル(sample.txtというファイル)があるとします。 Row1,10 Row2,20 Row3,30 Row4,40 基本的に4行すべてのペアの組み合わせであるこのファイルからのストリームで作業できるようにしたいので(合計で16になるはずです)。たとえば、出力が次のようなストリーミング(つまり効率的な)コマンドを探しています。 Row1,10 Row1,10 Row1,10 Row2,20 Row1,10 Row3,30 Row1,10 Row4,40 Row2,20 Row1,10 Row1,20 Row2,20 ... Row4,40 Row4,40 私の使用例は、この出力を別のコマンド(awkなど)にストリーミングして、このペアごとの組み合わせに関するメトリックを計算することです。 私はawkでこれを行う方法がありますが、私の懸念は、END {}ブロックを使用すると、出力する前に基本的にファイル全体をメモリに保存することです。サンプルコード: awk '{arr[$1]=$1} END{for (a in arr){ for (a2 in arr) { print arr[a] " " arr[a2]}}}' samples/rows.txt Row3,30 Row3,30 Row3,30 Row4,40 Row3,30 Row1,10 Row3,30 Row2,20 Row4,40 …

4
空の行を維持しながら、awkで重複行を削除するにはどうすればよいですか?
以下のawkコマンドは、ここで説明されているように、すべての重複行を削除します。 awk '!seen[$0]++' テキストに空行が含まれている場合、1行を除くすべての空行が削除されます。 のみを使用して、空ではないすべての重複行を削除しながら、すべての空の行を保持するにはどうすればよいawkですか?また、簡単な説明も含めてください。
13 awk 

4
AWKで正規表現を使用して文字列を置換する方法は?
ファイルからテキストがあると仮定します。 (bookmarks ("Chapter 1 Introduction 1" "#1" ("1.1 Problem Statement and Basic Definitions 23" "#2") ("Exercises 31" "#30") ("Notes and References 42" "#34")) ) 私は各行に11を追加し、その後"に各行にa があれば、 (bookmarks ("Chapter 1 Introduction 12" "#12" ("1.1 Problem Statement and Basic Definitions 34" "#13") ("Exercises 42" "#41") ("Notes and References 53" "#45")) ) GNU …

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