特定の「検索」基準に一致するすべてのファイルの最初の行をどのように印刷できますか?
.txt100バイトより長いすべてのファイルの最初の行を印刷したいです。これまでの基準を満たすファイルを収集しましたが、ファイルの最初のテキスト行を印刷する方法がわかりません。 find -size +100c -name "*.txt" それとも私が完全に間違った道を行っているのでしょうか?
.txt100バイトより長いすべてのファイルの最初の行を印刷したいです。これまでの基準を満たすファイルを収集しましたが、ファイルの最初のテキスト行を印刷する方法がわかりません。 find -size +100c -name "*.txt" それとも私が完全に間違った道を行っているのでしょうか?
ログファイルを簡単に追跡し、単一フィールドの出力を画面に印刷しようとしています。 私のLinuxシステムのログファイルは次のとおりです。 2022-10-21 16:00:08;areq_in=0;areq_qavg=0;areq_qmax=0;areq_sent=0;ares_out=0;ares_out_err=0;ares_out_ok=0;ares_qavg=0;ares_qmax=0;ares _recv=0;ares_tavg=0;ares_tmax=0;creq_out=0;creq_qavg=0;creq_qmax=0;creq_recv=0;cres_in=0;cres_qavg=0;cres_qmax=0;cres_sent=0;lic_rej=0 ;lic_use=0;mbr_from=0;mbr_to=0;mreject=0;mreject_conn=0;msys_recv=0;msys_sent=0; ログの各行は;区切りフィールドで構成され、ほとんどは「key = value」形式です。 だから私がしたいのは、creq_recv画面に「キー」名のフィールドを印刷することです。 誰かの修正からこのスクリプトをインポートしましたが、何かが欠けているようです。 #!/bin/bash creq_recv=$1 my_variable=`tail -f stats_2022102116.log | awk -F: -v creq_recv="$1" '$1 == creq_recv {$1=$1; print}' stats_2022102116.log` echo "$my_variable" 出力が空なので [root@priti ]$ ./chk_conn_log.sh [root@priti ]$ 値が何であれ、出力は画面に印刷する必要がありますcreq_recv。たとえば、次のように creq_recv=12 creq_recv=34 creq_recv=65
hostname -i私が実行して次のような結果が得られたとしましょう。 root@linux:/# hostname -i 192.168.1.1 root@linux:/# 出力(IPアドレスのみ)をパイピングして、特定のファイルの特定の文字列をどのように置き換えることができますか? このコマンドの出力(たとえば、sedORを使用)を次の部分にパイプしたいと思います。awkmy_server_ip "server":"my_server_ip", "server_port":8388,
MAC(Unix)に一貫性のない列を持つ150を超えるCSVファイルがあります。たとえば、次のようになります。 プレートA ID 西洋の平地 移動する Eメール 補助携帯電話 名前 V V V V V V V V V V V V Bフィルム ID 西洋の平地 西洋の平地 西洋の平地 西洋の平地 西洋の平地 V V V V V V V V V V V V 表C うつ病 Eメール 移動する 名前 西洋の平地 うつ病 V V V V V V V V V V V V フォームD ID うつ病 うつ病 うつ病 移動する うつ病 V V V V V V V V V V V V 上記の各ワークシートに次の列がある場合は、新しいワークシートを派生する必要があります。 ID、名前、メール、携帯電話、SECONDARY_MOBILE 次に、CATを使用して新しくエクスポートしたワークシートを1つのワークシートにマージします。これにより、Oracle DBにデータをアップロードできます。 したがって、SHEET Dの場合、派生テーブルは次のようになります。 ID 名前 Eメール 移動する SECONDARY_MOBILE V V これがはっきりしていることを願っています。よろしくお願いします。
csvを使用すると、不要なカンマ( '、')が原因でcsvファイルが誤って表示され、不一致が発生します。 以下をご覧ください。 私のサンプルCSVファイル: 1|a,b|4 1|c,d|4 1|e,f|4 1|g,h|4 1|i,j|4 私が望む最終結果は次のとおりです。 1|"a,b"|4 1|"c,d"|4 1|"e,f"|4 1|"g,h"|4 1|"i,j"|4 引用符を追加した後、「|」を「」に置き換えると、私のCSVは期待どおりに機能します。 以下のコマンドを使用しましたが、期待どおりに提供されません。 sed -e 's/,/"&"/' file1.txt
ランダムバイトを含む2つのファイルがあるとし./delimiterます./data。 ./dataバイトシーケンスが最初に表示されるまで読んで除外したいと思います./delimiter。 Bashを使ってこれを行うにはどうすればよいですか? 例: コンテンツ./delimiter world コンテンツ./data helloworld 予想される結果: hello 類似/同等の質問: zsh: 標準入力から文字列区切り文字まで読み込みます。 注:read -d delim文字列ではなく単一文字区切り文字のみをサポートしているため、問題は解決されません。また、バイトをサポートしていない変数に結果を格納しますNUL。私は出力が欲しいですstdout。
私は列166以降の列ヘッダーを取得し、それを各後続の行に印刷するawkスクリプトを使用しています。 前任者。 col165 col166 col167 a 1 2 b 3 4 c 5 6 これになる-- col165 col166 col167 a col166|1 col167|2 b col166|3 col167|4 c col166|5 col167|6 しかし、私が作業しているファイルはかなり大きく(約160万行)、処理に約1.5時間かかります。 プロセスを高速化するために、大容量ファイルを100,000行に分割し、gnuを使用してparallel各ファイルを個別に処理する方法を考えました。しかし、ファイルのヘッダーを取得してヘッダーをインポートするために使用するスクリプトに問題が発生しました。ヘッダを指定するために別のファイルを使用したいと思います。それ以外の場合は、各分割ファイルにヘッダーを追加する必要があります(それ自体は面倒です)。 私が使用するコードは - awk 'BEGIN { FS="\t";OFS="\t" }; NR == 1 { split($0, headers); print; next } {for (i=166;i<=NF;i++) $i=headers[i] "|" $i } 1' input > output column_headersファイルを使用してタイトルを指定したいと思います。可能ですか? 次のコードを試しましたが、うまくいかず、コードが正しいかどうかはわかりません。 awk -v head='$(cat column_headers)' 'BEGIN{ FS="\t";OFS="\t" }; NR == 1 { split($head, headers); print; next } {for (i=166;i<=NF;i++) $i=headers[i] "|" $i } 1' input > output 私が何か間違っているような気がしますが、何なのかよくわかりません。私が受けることができるどんな助けにも感謝します。 編集:ありがとう。実際、長期的な犯人だったチェーンのもう一つの命令を逃した。 @Ole Tangeが述べたようにコマンドを使用しましたが、少し修正しました。 time cat input_1|parallel -k -q -j 24 --tmpdir tmp/ --block 900M --pipe awk -f culprit_script > output スクリプトはデフォルトで各フィールドを分割し、値に応じて削除/保持します。 最初のコマンドを実行するのに約15〜20分かかり、2番目のスクリプトは1時間かかりました。並列性と24スレッドを活用して7分で完了!最初のコマンドにも並列性を使用すると思います。 皆様のご意見やご提案ありがとうございます!
デフォルトモジュールはウィンドウ名を出力するので、現在アクティブなウィンドウクラスを表示するカスタムPolybarモジュールを作成しようとしています。 このコマンドを使用してウィンドウクラスを取得します。 xprop -id $(xdotool getactivewindow) WM_CLASS 次の出力を取得します。 WM_CLASS(STRING) = "kitty", "kitty" ただし、希望の出力は次のとおりです。 kitty どうすればいいですか?
重複した内容についてお詫び申し上げます。しかし、私が経験した問題のほとんどは、行のフィールドから特定の値を取得するか、既知のファイルからtail最後の行を取得することに関連しています。nn先験的に。一致する値を持つ行を見つけて、その行と後続のすべての行のすべてのフィールドを取得します。詳細は次のとおりです。 データベースの検索に使用されるクエリ基準に関する情報を含む、さまざまな数のメタデータヘッダー行を含むオンラインデータベースから返されたデータファイルがあります。このヘッダー行の後にはきちんとしたデータフレームがあります。例: Query date: February 3, 2020, 1:34:57 PM
Database:
ここでは、次の列のリストを取得します。 59 LOUIS 1202 +1 60 FREDDIE 1201 +4 61 FINLAY 1200 -2 62 LEON 1137 +12 63 HARLEY 1132 +6 64 DAVID 1127 -1 65 MOHAMMAD1100 +6 66 REECE 1095 -1 67 KIAN 1090 0 68 KAI 1056 -6 69 KYLE 1030 -18 70 BRANDON 1011 -4 71 HAYDEN 1006 +5 72 ZACHARY 995 +10 73 KIERAN 973 -12 73 LUCA 973 -1 75 ASHTON 954 +4 76 BAILEY 939 -6 77 JAKE 913 +10 78 GABRIEL 910 +14 79 SAM 900 -2 80 EVAN 890 0 81 BRADLEY 847 -13 次のように文字「L」の行のみを抽出するにはどうすればよいですか? 73 LUCA 973 -1
次のフィールドで構成される複数行を含むファイルがあります。商標: ID Code Date 1 XX 23/1/2018 1 XX 11/3/2021 2 XX 14/5/2011 2 XX 20/9/2013 3 XX 08/7/2014 3 XX 11/9/2016 3 XX 27/10/2018 ID列の日付が最も早い項目に基づいて各参加者の項目を維持したいと思いますDate。各参加者の日付は、早いものから遅いものの順にソートされます。 私が望む出力は次のとおりです。 1 XX 23/1/2018 2 XX 14/5/2011 3 XX 08/7/2014