最新記事

awkまたはgrepを使用したlsblkコマンドのフィルタリング
awk
grep
lsblk

awkまたはgrepを使用したlsblkコマンドのフィルタリング

このコマンドの結果をフィルタリングする必要があります。 lsblk -rno "name,size,mountpoint,fstype" | grep -v 'sda' 私のコンピュータで上記のコマンドの結果をお知らせします。 sdb 223,6G sdb1 179,8G /VMs/qemu ext4 sdb2 29,5G [SWAP] swap sdc 15G ntfs sdd 7,5G sdd1 7,5G ext4 私に必要なフィルタリングは、マウントされていないものとファイルシステムが残っているものだけをフィルタリングすることです。したがって、理想的にはフィルタリング後に残ったものは次のとおりです。 sdc 15G ntfs sdd1 7,5G ext4 私の目標は、USBドライブをマウントするためのスクリプト(dmenuのrofiを使用して呼び出すことができる)を持つことです。私はオンラインでいくつかの解決策を見つけましたが、これらの解決策の問題は、すべてのドライブにパーティションがあると仮定することです。ご覧のとおり、私は最初にパーティション化されていない外付けドライブ(ntfsなど)を使用します。だから私にはこのような変更が必要です。

Admin

grep + regex:データをコンテキスト要素と一致させるためのパターンを作成する方法は?
grep
regular-expression

grep + regex:データをコンテキスト要素と一致させるためのパターンを作成する方法は?

テキスト(アセンブリコード)があるとします。 st.w av,d15 ld.w d15,av 我々はそれをgrepしたいと仮定しましょう。次のパターンを使用できます。 pattern=\ '\s+st.w\s+av,.*'\ '\s+ld.w\s+.*,av' .*注:レジスタ名を一致させるために使用されます。これらのレジスタ名は将来変更される可能性があります。 レジスタ名に特別な正規表現を使用するとします。特別なキーワードを追加します@reg。 pattern=\ '\s+st.w\s+av,@reg'\ '\s+ld.w\s+@reg,av' 次に、すべての特殊キーワードを実際の正規表現パターンに置き換えるprepend関数をgrepパターンに追加します。 preprocess_pattern () { local result=$1 # Replace @reg to exact regex pattern [a..d][0..15]. result=${result//'@reg'/'[a-d](1[0-5]|[0-9])'} # Add other replacements (if need). #result=${result//''/''} echo "$result" } その後、preprocess_pattern()実行する前に呼び出しますgrep。 pattern="$(preprocess_pattern $pattern)" if ! grep -Pzo $pattern code.asm > /dev/null then echo "grep #$i failed (pattern: "$pattern")" ((++failed)) fi うまくいきますが、私たちはもっと欲しいです。 @pregつまり、追加したいと思います。以前の登録。 pattern=\ '\s+st.w\s+av,@reg'\ '\s+ld.w\s+@preg,av' 今問題は、各発生後にロジックを追加する場所と方法です。@reg 救うd15特殊スタック/バッファの値と各発生後の値の一致(私たちの場合)@preg 探す@pregスタック/バッファの値を一致させますか?値と比較して値を確認します。 つまり、データに一致するパターンを作成する方法状況に合う要素?グレブは大丈夫ですか? 可能であれば(すなわち、可能であれば)これを説明する方法状況感度パターンとして? そうでなければ(つまり不可能であれば)、この問題を解決するために何ができますか?

Admin

特定のIPv6アドレスに対して複数のファイルを検索する方法は?
grep

特定のIPv6アドレスに対して複数のファイルを検索する方法は?

私のLinux技術が最高レベルではないということから始めましょう。その後、grepを使用して特定のIPv6アドレスを検索してみました。私の試みは次のとおりです # grep -o "2607:f388:2:2001::1002" *.conf 結果はありません。私はgrepがそれを好きではないと思います:。 誰でもいくつかのオプションを提供できますか?

Admin

cutコマンドで見つかったすべての部分文字列を表示する方法
grep
cut

cutコマンドで見つかったすべての部分文字列を表示する方法

grepコマンドがあります grep -o 'ITEM+[^ ]*' "file.txt" 返される文字列は次のとおりです。 ITEM+12345678::hashtext_20191030::ITEM+87654321::hashmap_20191030::ITEM+12348765::hashvalue_20191001 したがって、切り取りコマンドを追加すると grep -o 'ITEM+[^ ]*' "file.txt" | cut -c 5-12 結果は1つだけ得られます。 12345678 どうすれば次のような結果を作成できますか? 12345678 87654321 12348765

Admin

ディレクトリ名とサブディレクトリ名のすべての点を繰り返し空白に置き換えます。
bash
sed
grep

ディレクトリ名とサブディレクトリ名のすべての点を繰り返し空白に置き換えます。

Bashを使用して、ディレクトリ名とサブディレクトリのすべての点を空白に変更しようとします。 例: ディレクトリ目次1.3 なります目次 1 3 これまで私のスクリプトは次のようになりました。 #!/bin/bash for dir in *\ -\ *; do [[ -d "$dir" ]] || continue # skip if not a directory sub="${dir#* - }" if [[ ! -e "$sub" ]]; then mv "$dir" "$sub" mv echo "$(echo "Result: ${dir%.*}" | sed 's/\./ /g').${dir##*.}" fi done

Admin

複数のテキストファイル入力をgrepし、ファイルごとに異なる出力を生成します。
awk
grep
output

複数のテキストファイル入力をgrepし、ファイルごとに異なる出力を生成します。

ループでgrepとawkを使用して複数のテキストファイルをフィルタリングするスクリプトがあります。フィルタリング後に各ファイルの出力を生成すると問題が発生します。 これは私のスクリプトです。 grep_multi.sh path=$(find /home/folder/file/source -iname "Tracert*" ) for i in "$path" do grep -E '^%%.*.%%$'\|'IPv4 type' $i | awk '/%%TRACERT:/ {sfx = $0; next} {print $1","$2","$3","$4","$5","$6","$7" "$8","sfx}' > filter.result.$i done スクリプトを実行すると、私は得ます。間違いこのように: ./grep_multi.sh: line 5: filter.result.$i: ambiguous redirect これは変数 $path $ find /home/folder/file/source -iname "Tracert*" /home/folder/file/source/Tracert_1.txt /home/folder/file/source/Tracert_2.txt /home/folder/file/source/Tracert_3.txt /home/folder/file/source/Tracert_4.txt /home/folder/file/source/Tracert_5.txt /home/folder/file/source/Tracert_6.txt /home/folder/file/source/Tracert_7.txt /home/folder/file/source/Tracert_8.txt tracert_1.txt O&M #108 %%TRACERT: IPTYPE=IPv4, LOCALIP4="10.10.10.10", PEERIP4="10.10.10.10", MAXHOP=15;%% RETCODE = 0 Operation succeeded The result is as follows ------------------------ Record index Response number First response time(ms) Second response time(ms) Third response time(ms) IP type Peer IP address 1 3 1 1 1 IPv4 type 10.10.10.10 2 3 1 1 1 IPv4 type 10.10.10.10 3 0 NULL NULL NULL IPv4 type Timeout 4 0 NULL NULL NULL IPv4 type Timeout 5 3 1 1 1 IPv4 type 10.10.10.10 6 3 1 1 1 IPv4 type 10.10.10.10 7 3 1 1 1 IPv4 type 10.10.10.10

Admin

ファイルの連続行間の変更の表示
awk
sed
command-line
grep

ファイルの連続行間の変更の表示

ファイルの行がどのように変更されたかを簡単に確認する方法はありますか?たとえば、次の「my.log」ファイルがあるとします。 cpu1 cpu2 cpu3 cpu4 5 3 3 6 5 3 3 6 5 0 3 6 3 0 6 6 5 3 3 0 コマンドラインに「cat my.log | showchanges」などの内容を入力すると、次の内容が表示されます。 cpu1 cpu2 cpu3 cpu4 5 3 3 6 " " " " " 0 " " 3 " 6 " 5 3 3 0 理想的には、「showchanges」は空白を列の区切り文字で貪欲に処理することによってこれを行いますが、詳細については非常に柔軟です。列が多い場合は、変更を簡単に確認したいと思います。また、まったく変更されていない行を省略する方が最終的には良いです。

Admin

grepマニュアルで-o(一致のみ)について言った内容を誤解しました。
grep

grepマニュアルで-o(一致のみ)について言った内容を誤解しました。

grep手動引用: -o、--matchのみ 一致する行の一致する(空でない)部分のみが印刷され、各部分は別々の出力行に表示されます。 matched (non-empty) parts of a matching line方法空白ではない行正しいですか? 修正する コメントが削除された場合は、下記のStephenの回答をご覧ください。 説明:「行の空の部分一致」の代わりに「行の空の文字列」はどうですか? – ラホールの10時間前 大切なタグは「一致するセット」だと思います。 「一致する文字列」も機能します。どちらが良いか尋ねる人ではありません。 - スティーブンジッター59分前

Admin

部分的に記録されたLinuxコマンドの表示[閉じる]
linux
grep
command

部分的に記録されたLinuxコマンドの表示[閉じる]

閉鎖。この質問には詳細または明確性。現時点では回答は許可されていません。 この質問を改善したいですか?詳細を追加して質問を明確にしてください。この記事を編集してください。 閉鎖2年前。 この問題を改善する エラーコードに対してApacheログを取得する必要があり、エラーコードが見つかった場合はその行のIPアドレスのみを表示しますか? Linux コマンドを使用します。

Admin

テキストが変数によって生成されることがわかったら、Grapを使用して文字チェーンからテキストの前後の文字をどのように削除できますか?
text-processing
grep

テキストが変数によって生成されることがわかったら、Grapを使用して文字チェーンからテキストの前後の文字をどのように削除できますか?

私はそれを使用しています grep 'name=>' log.txt | cut -d\ -f3 私は次のような結果を得ます。 name=>"Faya-Largeau", name=>"Paris", name=>"Madrid", name は変数の出力です。 (私はこのような都市の長いリストを持っています) 「Faya-Largeau」、「Paris」、または「Madrid」のみをインポートしたいので、名前=>と後の括弧の間にある都市を除外する必要があります。 どうすればいいですか? 事前にありがとう

Admin