最新記事

現在の日付と時刻を取得し、「Hello」を含む各行の末尾に追加する方法 質問する
date
awk
grep

現在の日付と時刻を取得し、「Hello」を含む各行の末尾に追加する方法 質問する

party.txt次のような内容を含む次のファイルがあります。 Hello Jacky Hello Peter Bye Johnson Hello Willy Bye Johnny Hello Mary Hello Wendy grep helloコンテンツをキャプチャするためにを使用しましたが、 を使用しprint date +"%Y-%m-%d'てそれに追加すると、それができず、1 行あたりに多数のコンテンツが取得されます0。 cat party.txt | grep Hello | awk '{ print date +"%Y-%m-%d"}' 何が欠けているのでしょうか?

Admin

AWK または BASH スクリプトを使用して開始日と終了日を指定して日付のシーケンスを生成するにはどうすればよいでしょうか? 質問する
bash
unix
awk

AWK または BASH スクリプトを使用して開始日と終了日を指定して日付のシーケンスを生成するにはどうすればよいでしょうか? 質問する

次の形式のデータセットがあります 最初のフィールドと 2 番目のフィールドは、調査の開始日と終了日 (M/D/YYYY) を示します。 AWK または BASH スクリプトを使用して、うるう年を考慮しながらデータを目的の出力形式に拡張するにはどうすればよいでしょうか? あなたの助けにとても感謝しています。 入力 7/2/2009 7/7/2009 2/28/1996 3/3/1996 12/30/2001 1/4/2002 望ましい出力 7/7/2009 7/6/2009 7/5/2009 7/4/2009 7/3/2009 7/2/2009 3/3/1996 3/2/1996 3/1/1996 2/29/1996 2/28/1996 1/4/2002 1/3/2002 1/2/2002 1/1/2002 12/31/2001 12/30/2001

Admin

最後の空白行を削除する 質問する
sed
awk
grep

最後の空白行を削除する 質問する

.csv ファイルの最後にはパラグラフ ブレークがあります。次のコマンドを使用して、ファイルの末尾にある空白行を削除しようとしました。 sed -i '/^$/d' combined.csv しかし、それは機能せず、空白行がまだ残っています。次のコマンドを使用して最後の行を削除できます。 sed -i '$d' combined.csv しかし、最後の行を削除する前に、それが本当に空であるかどうかを確認することは可能ですか? アップデート: 次のコマンドを使用して、各行が数字で始まっているかどうかを確認します。 sed -i '1s/^[^0-9]*//' combined.csv これは最初の行のみをチェックし、残りの行はチェックしません。ファイル内のすべての行をチェックするにはどうすればよいでしょうか? これで問題が解決するかもしれません。

Admin

テキストファイルから行の2番目の単語を抽出する 質問する
bash
unix
awk
sed
cut

テキストファイルから行の2番目の単語を抽出する 質問する

現在、テキスト ファイルの行の 2 番目の単語 (CRISTOBAL) を抽出する必要があります。 * CRISTOBAL AL042014 08/05/14 12 UTC * 「CRISTOBAL」という行の 2 番目の単語は日によって変わるので、行から 2 番目の単語/文字だけを抽出する方法を見つける必要があります。

Admin

bash スクリプトを使用して JSON ファイルをマージする 質問する
json
bash
awk

bash スクリプトを使用して JSON ファイルをマージする 質問する

私は bash スクリプトの初心者です。複数の json ファイルを結合するスクリプトを書こうとしました。例: ファイル1: { "file1": { "foo": "bar" } } ファイル2: { "file1": { "lorem": "ipsum" } } 結合されたファイル: { "file1": { "foo": "bar" }, "file2": { "lorem": "ipsum" } } 私が思いついたのはこれです: awk 'BEGIN{print "{"} FNR > 1 && last_file == FILENAME {print line} FNR == 1 {line = ""} FNR==1 && FNR != NR {printf ","} FNR > 1 {line = $0} {last_file = FILENAME} END{print "}"}' json_files/* > json_files/all_merged.json うまく動作しますが、もっと良い方法があると思います。何かアイデアはありますか?

Admin

awk は、OFS を使用して連想配列を印刷します。
awk
gawk

awk は、OFS を使用して連想配列を印刷します。

次のawkコードがあります。まず、ヘッダー行で目的のフィールド番号を決定してから、そのフィールドの出力を印刷します。問題は、関心のあるフィールド番号を維持するために連想配列を使用しているため、を使用する代わりにループ内でそれを印刷することforです。問題は、行の末尾に区切り文字を追加することです。printprintf この問題を解決する簡単な方法はありますか? (いいえ。例えば出力を再実行して追加の区切り文字を削除しますか?それとも、数値が配列に格納されているフィールドを印刷するより良い方法はありますか? awk ' BEGIN { FS = ","; OFS = "," no_headers = 2; headers[1] = "header1"; headers[2] = "header3" k = 0 } NR==1 { for (i=1; i<=no_headers; i++) { for (j=1; j<=NF; j++) { s = gensub(/"/, "", "g", $j) if (s==headers[i]) { col_no[++k] = j } } } } NR>1 { for (i=1; i<=k; i++) { printf "%s,", $col_no[i] } print "" }' test_awk.txt テストファイルは次のとおりです "header1","header2","header3","header4" "a","b","c",4 1,"b",,"d" "a","2","c","d" 私の現在の出力は次のとおりです "a","c", 1,, "a","c", しかし、私はこのように見たいです(つまり、末尾の区切り記号なし) "a","c" 1, "a","c"

Admin

Linuxで異なる列を持つ2つのファイルを結合する 質問する
bash
sed
awk

Linuxで異なる列を持つ2つのファイルを結合する 質問する

Linux に 2 つのファイルがあり、最初のファイルには 4 列、2 番目のファイルには 2 列あります。これらのファイルを、ファイル 1 の最初の 3 列とファイル 2 の最初の列を含む新しいファイルに結合したいと考えています。awk を試しましたが、ファイル 2 のデータがファイル 1 の下に置かれました。

Admin