最新記事

pdftkとgrepを使用して指定されたターゲットとそのページのみを抽出する方法は?
grep
pdf
pdftk

pdftkとgrepを使用して指定されたターゲットとそのページのみを抽出する方法は?

指定されたターゲットを抽出できるかどうかを知りたいです。これpdftkとgrepのみを使用してPDFを生成します。私はそれが動作するpdfinfo -destsことを知っています。 Page Destination Name 1 [ XYZ 74 581 null ] "COMUNICAÇÕES PROCESSUAIS" 8 [ XYZ 74 803 null ] "COMUNICADO" 8 [ XYZ 74 785 null ] "DECISÕES PLENÁRIO/CÂMARAS" 15 [ XYZ 74 803 null ] "LICITAÇÕES E CONTRATOS" 16 [ XYZ 74 803 null ] "PAUTA" pdftkの出力で/Namesタグを探すと、次のようになります。 /Names [(COMUNICADO) 7 0 R (COMUNICA��ES PROCESSUAIS) 4 0 R (DECIS�ES PLEN�RIO/C�MARAS) 9 0 R (LICITA��ES E CONTRATOS) 10 0 R (PAUTA) 12 0 R] それは私が探しているものの半分です。しかし、指定された宛先とそのページ番号を抽出する方法はわかりません。

Admin

Mac端末のファイルセットでコードを実行する
awk
sed
grep

Mac端末のファイルセットでコードを実行する

.txtファイルを変更するスクリプトがあります。 これは私のスクリプトです。 awk 'BEGIN{FS=OFS="\t"}{split($1,a,"_"); split(a[3],b,"/"); print a[1],a[2],b[1],b[2],$0}' file.txt | awk 'BEGIN{FS=OFS="\t"}{split($18,a,";"); split(a[2],b,"="); print b[2],$0}' > out_file.txt 私のフォルダにファイルがたくさんあります。 私のファイルからこのスクリプトを実行し、元のファイル名で各出力を返したいと思います。 私はこれを試しました > for i in `find . -maxdepth 1 -type f -iname "*.txt" awk 'BEGIN{FS=OFS="\t"}{split($1,a,"_"); split(a[3],b,"/"); print a[1],a[2],b[1],b[2],$0}'| awk 'BEGIN{FS=OFS="\t"}{split($18,a,";"); split(a[2],b,"="); print b[2],$0}'print > out}' *.txt -bash: syntax error near unexpected token `|' (base) user112$ しかし、何も起こりませんでした。

Admin

リストファイルのディレクトリが特定のディレクトリのサブディレクトリであることを確認してください。
bash
sed
grep

リストファイルのディレクトリが特定のディレクトリのサブディレクトリであることを確認してください。

私はすでにこの質問に対する答えを知っていると思います。しかし、バッシュ魔法を持つ人がいるかどうかを確認したかった。 状態: ディレクトリがあるとしましょう。/mnt/Transfer/Downloads/Documents/Thesis/Drafts/images/ ディレクトリのリストを含むファイルがあります。 /mnt/Transfer/Downloads/Documents/ProjectProposal/ /mnt/Transfer/Downloads/Documents/ProjectDesign/ /mnt/Transfer/Downloads/Documents/Thesis/Drafts/ ... 質問: 単純にファイルを繰り返すことなく、リストファイルのディレクトリが最初のディレクトリのサブディレクトリであることを確認するBashスクリプト(たぶん1行?)にすばやく簡単な方法がありますか?つまり、リストファイルのディレクトリが一部のディレクトリのサブディレクトリであることを確認してください。 さらなる説明のために編集されました。がある場合は、リストファイル(たとえば)にそのエントリを含むサブディレクトリがあるかどうかを/foo/mnt/Transfer/Downloads/Documents/ProjectProposal/知りたいです。/foo/mnt/Transfer/Downloads/文字列一致で十分です。ディレクトリが実際に存在することを確認する必要はありません。 私は同様のものを実装しましたが、grep -q $FILEDIRECTORY $accessLogこれはリストファイルエントリに基づいて別々のディレクトリをgrepするより簡単なケースです。今私は反対方向に行き、基本的に単一のディレクトリリストファイルから単一の全体を「grep」したいと思います。 ループを実行する必要がある場合はそうします。 「より良い方法」があるかどうかを調べることに興味があるだけです。 よろしくお願いします!

Admin

2つの異なる位置で一致する部分文字列を含む行数を計算するBashコマンド
bash
grep
logs
uniq
statistics

2つの異なる位置で一致する部分文字列を含む行数を計算するBashコマンド

いくつかのデバッグ出力のマイナーな統計を取得しようとしています。 各デバッグ行は次の形式です。(class name)(delimiter 1)(object ID)(delimiter 2)(method name)(delimiter 3)(log message) どのような方法で何行が出るかを計算したいと思います。 デフォルトでは、各行をに減らすことができる場合は、(class name)(delimiter)(method name)ログファイルで各折りたたみが何回発生するかを知りたいと思います。 計算を実行するには、Bashでどのコマンドを実行できますか? (私はmacOSでmacportsを使用して、ほとんどのデフォルトのBSDスタイルツールをGNUツールに置き換えます。) クラス名抽出を使用したり、grep -o -E "^.*(delimiter 1)メソッド名抽出を使用したり、両方を強調grep -o -E "(delimiter 2).*(delimiter 3)"表示したりできますgrep --color=always -E "^.*(delimiter 1)|(delimiter 2).*(delimiter 3)"。grep私は計算できる2つの一致のみを出力する方法を探していました| uniq -c。 grep1つの一致または全行の代わりに1行に2つの一致を印刷する方法はありますか?

Admin

grepとawkを使用してログファイルから特定のタイムラインを抽出する
awk
grep
logs

grepとawkを使用してログファイルから特定のタイムラインを抽出する

ファイル名が付けられた特定の時間の間のすべての行を抽出したいと思います。 入力例: Dec 8 22:00:05 host kernel: Dec 8 23:00:05 host kernel: Dec 8 23:34:45 host kernel: Dec 8 23:54:45 host kernel: Dec 9 00:34:45 host kernel: Dec 9 00:54:45 host kernel: Dec 9 01:54:45 host kernel: Dec 9 02:54:45 host kernel: Dec 9 03:54:45 host kernel: Dec 9 04:54:45 host kernel: Dec 9 05:54:45 host kernel: 私が望む出力: Dec 8 23:00:05 host kernel: Dec 8 23:34:45 host kernel: Dec 8 23:54:45 host kernel: Dec 9 00:34:45 host kernel: Dec 9 00:54:45 host kernel:

Admin

grepを使用して空行数を計算する方法
text-processing
files
grep
search

grepを使用して空行数を計算する方法

テキストファイルがあります。一部の行にはテキストが含まれていますが、他の行にはテキストが含まれていません(空白または文字のない空白行: 123 // comment 45 ご覧のとおり、上に線があります//comment。これらの行がファイルに存在する回数を計算するにはどうすればよいですか?

Admin

grep お問い合わせ if/else
grep
json

grep お問い合わせ if/else

すべてのインスタンスを見つけ、"type":"FollowEvent"そのインスタンス内で文字列が"actor":続かない場合は、{それに続く文字列をキャプチャしようとします。それ以外の場合は、に含まれる直後の文字列をキャプチャします。""actor":""login:" 私が今まで持っているもの: zgrep -e '"type":"FollowEvent"' /path/to/dir/* | zgrep -o '"actor":(?!{)*' | cut -f2- -d: | cut -d',' -f1 > results_file.txt 編集:zgrepこれがすること: /path/to/dir にあるすべてのファイルの を含むすべての行に対して"type":"FollowEvent"find の"actor:"後に{。その後、次回以降の:すべてのものを取り出します,。結果をに入れますresults_file.txt。 表示データの編集: grep 中のファイルの行は次のとおりです。 {"repo":{"url":"https://url","name":"/"},"type":"FollowEvent","public":true,"created_at":"2011-05-29","payload":{"target":{"gravatar_id":"73","id":64,"repos":35,"followers":58,"login":"username3"}},"actor":{"gravatar_id":"06","id":439,"url":"https://url","avatar_url":"https://.png","login":"username4"},"id":"14"} または次のようになります。 {"repo":{"url":"https://url/","name":"/"},"type":"FollowEvent","public":true,"created_at":"2011-04-01","payload":{"target":{"gravatar_id":"40","repos":2,"followers":1,"login":"username2"},"actor":"username1","actor_gravatar":"de4"},"actor":{"gravatar_id":"de4","id":716,"url":"https://url","avatar_url":"https://.png","login":"username2"},"id":"12"}

Admin

カスタムzsh機能を使用してカラー出力を保存するには?
grep
zsh
colors
oh-my-zsh

カスタムzsh機能を使用してカラー出力を保存するには?

私はシェル環境を設定しており、zsh学習目的で簡単な関数を作成したいと思いました。 # ~/.zsh-extensions/conda_which # get version in conda env function conda_which { # this comes from Flament's answer below readonly env=${1:?"The environment must be specified."} readonly pkg=${2:?"The package must be specified."} conda list -n $env | grep $pkg } そして私.zshrc # ~/.zshrc # this comes from Terbeck's answer below fpath=(~/.zsh-extensions/ $fpath) # this comes from _conda file recommendation for conda autocompletion fpath+=~/.zsh-extensions/conda-zsh-completion # this comes from Terbeck's answer below autoload -U $fpath[1]/*(.:t) これで、次のようにできます。 $ conda_which test_env numpy numpy 1.23.5 py310h5d7c261_0 conda-forge 変える $ conda list -n test_env | grep numpy かどうか忘れてしまうので、env listこれはlist envおもちゃの例です。 conda_which私が直面している問題は、grep出力で色の強調表示が失われることですnumpy。これをどのように維持しますか? 召喚: ツイートをサイトに埋め込む~の回答ユーザー定義関数を自動的にロードする方法 @damianflamont~の回答zsh関数にパラメータを渡す方法について

Admin

xargsを使用して値を渡して動的出力ファイル名を生成する
linux
grep
xargs
filter

xargsを使用して値を渡して動的出力ファイル名を生成する

私のフォルダにいくつかのファイルがあります。次のコマンドを実行すると、フィルタリングされたファイル名(test1、test2、test3)を含むリストを生成し、xargsを使用してgrep filterコマンドに渡すことができます。フィルターコマンドのファイルには、フィルタリングするいくつかの値が含まれています。 ls -Art1 | grep test | xargs -L1 grep -vf filter > ouput ただし、このコマンドが実行されると、出力ファイルにはtest1、test2、およびtest3に対してフィルタ処理された結果が含まれます。一体。 各test1> test1_output、test2> test2_output、...ごとに別々のファイルがありたいです。したがって、xargs 値を取り、追加の文字列 "_output" を追加して出力ファイル名を生成します。

Admin

次のログエントリが前のログエントリより1分以上遅れて発生した回数を計算します。
shell-script
grep
logs

次のログエントリが前のログエントリより1分以上遅れて発生した回数を計算します。

日付、時刻(時、分、秒、ミリ秒)、車速、車と私たちの車の前後の車との間の自由距離を記録するログファイルがあります。車両が停止している場合は距離を測定しません。 私のselfdriving.logファイルは次のとおりです。 2021.04.01. 13:14:30:78 78 110 110 2021.04.01. 13:14:30:99 79 111 111 2021.04.01. 13:14:31:50 80 111 119 2021.04.01. 13:14:59:87 87 118 117 2021.04.01. 13:16:59:87 86 116 119 2021.04.01. 13:17:22:32 75 117 115 2021.04.01. 13:18:50:65 75 96 109 2021.04.01. 13:18:55:00 0 0 0 私が望むのは、最後のログエントリから1分以上後にログエントリが生成された回数を返すスクリプトを書くことです。したがって、私の計算が正しい場合は、2この場合に返す必要があります。grepどのように機能し、戻り値を変数に入れるのかわかりません。これまで私は次のことを試しました。 #!/bin/sh for i in "cat selfdriving.log" do grep (([01][0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]:[0-9][0-9] done 私の知る限り、評価は高くありません。

Admin