タグ付けされた質問 「regular-expression」

正規表現は、文字列内の文字のパターンを照合する手段です。

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
両側にコロンがある任意の長さの英数字文字列のgrep
両側にコロンが付いた1〜50文字の英数字文字列(理想的には、任意の長さでも機能します)をgrepする方法-典型的な結果は、文字列を含むすべての行になります:shopping:。これまでのところ、私は以下のコードを持っています(私はそれにいくつかのバリエーションを試しました)、それは動作しません: grep ':[[:alnum:]]{1,100}:' ~/x.txt

2
grep -vと同等のPythonは何ですか?
私は好きgrep -vです。いつも使っています。しかし、私はpythonでテキスト処理も行っていますが、私が欠けている重要なことがあります。 通常、私grep -vはテキストから余分なものを取り除くために使用します。 例えば、 $ grep -v '[a-z]' # (I manually review this output to confirm that I don't want those lines) $ grep '[a-z]' > linesiwanted しかし、Pythonで正規表現の補集合をどのように一致させるのでしょうか?たとえば、\w?の補数

2
検索パターン参照が少ない場所はどこですか?
less正規表現検索パターンのリファレンスはどこにありますか? をless使用\dして数字を見つけるためにファイルを検索したいのですが、このワイルドカードを理解できません。私はless正規表現パターンのリファレンスを見つけようとしましたが、何も見つかりませんでした。manページやインターネットでは見つかりませんでした。


1
このBSD grepの結果がGNU grepと異なるのはなぜですか?
私のコンピューターはmacOS 10.12.3を実行しておりgrep、バージョン2.5.1-FreeBSDでシステムにインストールされたユーティリティを使用しています。 これらは、さまざまな正規表現をテストするときに得られる出力です。 しかし、GNU grep(バージョン2.25)を使用してこれらを実行すると、次の結果が得られます。 GNUのgrepは正しいように見えますが、BSDのgrepは間違っていますか?なぜ違うのですか?正規表現で行の先頭に続く必要があると指定されている場合、BSDのgrepが「a」と一致する理由がわかりません。

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

3
[az]アスタリスクが数字と一致するのはなぜですか?
現在のパスに3つのディレクトリがあります。 $ls a_0db_data a_clean_0db_data a_clean_data $ls a_*_data a_0db_data: a_clean_0db_data: a_clean_data: $ls a_[a-z]*_data a_clean_0db_data: a_clean_data: 最後のlsコマンドのみが一致すると予想しましたa_clean_data。なぜそれも含むものと一致しました0か? bash --version GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)

1
「ドット」を2回エスケープする必要があるのはなぜですか?
リテラルと見なされるように*(){}$、withの\ような特殊文字をエスケープできることを知っています。 たとえば、\*または\$ しかし、.私はそれを2回し\\.なければならない場合、そうでなければそれは特別なキャラクターと見なされます。例: man gcc | grep \\. なぜそうなのですか?

2
bashスクリプトの正規表現
これは初めてのbashスクリプトなので、たぶん簡単な間違いを犯しているでしょう。 基本的に、ユーザーのグループを取得するスクリプトを作成しようとしています。特定のグループに属している場合、それに応じてログに記録します。明らかに、より多くの機能がありますが、正規表現を動作させることさえできないとき、それを構築する意味はありません! これまでのところ、私はこれを持っています: #!/bin/bash regex="^([a-zA-Z0-9\-_]+ : [a-zA-Z0-9\-_]+) (usergroup)$" # example output groups="username : username usergroup" echo "$groups" >> /home/jrdn/log if [[ "$groups" =~ $regex ]]; then echo "Match!" >> /home/jrdn/log else echo "No match" >> /home/jrdn/log fi 私がその正規表現を試したすべての場所、それは動作します。しかし、bashスクリプトでは$groups、が出力された後にのみが出力されNo matchます。だから誰かが私に何が悪いのか教えてもらえますか?

2
単語の境界について混乱している
私はこれをよく研究していますが、まだはっきりしていません。単語の境界とはどういう意味ですか?それは何をするためのものか? それで、例えば、誰かが私にこのコマンドを説明してもらえますか? egrep '\b[A-Z]+\b' filename.sh

3
オンラインgrep演習?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 UnixおよびLinux Stack Exchangeで話題になるようにします。 8か月前に閉鎖されました。 演習を実行するためのオンラインツールを備えたオンラインgrepチュートリアルはありますか?たとえば、定義済みのテキストサンプルを使用して、どのパターンを検索するかなどを教えられますか?予測可能な環境でgrepを実際に学習するための非常に便利なツールです。

5
findコマンドを使用してファイル名から(1)を削除する方法
最近、Mac OS 10.7(Lion)でXLDを使用して、すべてのFLACファイルを44.1 kHzの低いサンプリングレートと24ビットのビット深度に変換しました(iPhone / iPodはそれ以上をサポートしていないため)。 以前のすべてのファイルを上書きするようにXLDに指示しましたが、XLDは次の(1)ようなファイルの最後に some_song.m4a に some_song(1).m4a だから今、私(1)は変換したすべてのFLACファイルからそれを削除したい。 おそらく、プログラムやAppleScriptを使用してファイルの名前を変更することもできたはずですが、古い学校のコマンドラインを使用して学習したかったのです。 これfind . -name *\(1\).m4aにより、変換されたすべてのFLACファイルが取得されます。 次の私は、私が何かを知っている-execし、mvすべての見つかったファイルの名前を変更します。しかし、私が理解できないのは、元のファイル名を保持し、単に削除する方法(1)です。 修正したくないファイル名の部分を保存するために、グループ正規表現のキャプチャを行う必要があるのでしょうか?または、すべてを1行で実行することは不可能であり、シェルスクリプトを作成する必要があります(これはそれほど快適ではありませんが、試してみたいと思います)。 ヒントや提案は大歓迎です!ありがとう!

4
bashを使用して別のディレクトリにある特定のファイルを選択するにはどうすればよいですか?
次のように、ディレクトリ内の特定のファイルを一覧表示(または削除、またはその他の操作)したいです。 $ ls /opt/somedir/ aa bb cc aa.txt bb.txt cc.txt $ ls /opt/somedir/(aa|bb|cc) ## pseudo-bash :p aa bb cc どのようにこれを達成できますか(最初にディレクトリにcdすることなく)?

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.