最新記事

日付条件についてはわかりません。
awk
sed
csv

日付条件についてはわかりません。

その人が過去1年以内に生まれていない場合は、person.csv(下)から行を削除しようとします。 データセット1: "Index","User Id","First Name","Last Name","Date of birth","Job Title" "1","9E39Bfc4fdcc44e","new, Diamond","Dudley","06 Dec 1945","Photographer" "3","32C079F2Bad7e6F","Ethan","Hanson","08 Mar 2014","Actuary" "2","aaaaaaa, bbbbbb","Grace","Huerta","21 Jan 2023","Visual merchandiser" したがって、予想される出力は次のようになります(最後の行は1年以内に削除されました)。 "Index","User Id","First Name","Last Name","Date of birth","Job Title" "1","9E39Bfc4fdcc44e","new, Diamond","Dudley","06 Dec 1945","Photographer" "3","32C079F2Bad7e6F","Ethan","Hanson","08 Mar 2014","Actuary" 私はawkを使って次のことをしようとしています。 awk -F , '{print $5 ....}' person.csv > output.csv ただし、各日付行を(今日から1年を引いた値)と比較する方法はわかりません。 データセット2:時には二重引用符で囲まれたフィールドに二重引用符があります(例:line1 field4)。 "Index","User Id","First Name","Last Name","Date of birth","Job Title" "1","9E39Bfc4fdcc44e","new, Diamond","Dudley (aka "dud")","03 Oct 2023","Photographer" "3","32C079F2Bad7e6F","Ethan","Hanson","03 Dec 2022","Actuary" "2","aaaaaaa, bbbbbb","Grace","Huerta","21 Jan 2023","Visual merchandiser" 「sed」がこれを行うことができれば、私もそれについて開いています。どんな助けでもお願いします。ありがとうございます!

Admin

sed:ファイル内の2つの類似変数を更新しますが、大文字と小文字は保持します。
bash
sed
variable

sed:ファイル内の2つの類似変数を更新しますが、大文字と小文字は保持します。

아래와 같이 파일에 2개의 변수가 있고 하나의 사용자 입력으로 삽입된 새 값을 할당해야 합니다. read -p "Enter CName Name : " CName sid=C02SBX SID=C02SBX 다음 GNU 문을 실행하면 sed: sed -i "s/sid=.*/sid=$CName/gI" dbca2.rsp 다음과 같이 변수가 업데이트됩니다. sid=C03SBX sid=C03SBX sid질문: 플래그 앞의 두 번째 문자가 =항상 대문자로 유지되도록 하려면 어떻게 해야 합니까? 예를 들어 SID=C03SBX첫 번째 문자 sid는 소문자로 유지됩니다. 그리고 사용자가 소문자를 입력하든 대문자를 입력하든 기호 뒤의 합은 sid( )처럼 항상 대문자로 입력되어야 하나요?SID==C03SBX

Admin

Symlinkファイルでsedを使用する方法は?
linux
sed
rename
symlink

Symlinkファイルでsedを使用する方法は?

次のようないくつかのシンボリックリンクファイルといくつかの一般的なファイルがあります。 P_2_UC34_31_1.gz P_2_UC34_31_2.gz P_2_UC34_32_1.gz P_2_UC34_32_2.gz P_2_UC34_33_1.gz P_2_UC34_33_2.gz P_2_UC34_31_1.gzそしてP_2_UC34_31_2.gzシンボリックリンクです。残りの4つのファイルは一般的なファイルです(シンボリックリンクではありません)。 すべてのファイルの_Ms移行中に追加しようとしました_1。_2 シンボリックリンクの場合は、次のことを試しました。 sed -i --follow-symlinks 's/_1/_Ms&/g' *.gz しかし、それはうまくいきませんでした。エラーは発生せず、ファイル名も変更されません。 出力が次のようになります。 P_2_UC34_31_Ms_1.gz P_2_UC34_31_Ms_2.gz P_2_UC34_32_Ms_1.gz P_2_UC34_32_Ms_2.gz P_2_UC34_33_Ms_1.gz P_2_UC34_33_Ms_2.gz

Admin

Linuxファイルの最初の列を統合し、2番目の列に数字を追加します。
linux
text-processing
awk
sed

Linuxファイルの最初の列を統合し、2番目の列に数字を追加します。

複数のファイルからデータを収集し、単一の要約ファイルにダンプしています。 cat *files* | sort -u > final.rpt a 1 a 5 a 6 b 2 b 3 b 0 c 1 c 7 最初の列の文字列に基づいて一意化し、2番目の列の文字列に対応するすべての数値を合計するにはどうすればよいですか?上記の例で予想される出力は次のとおりです。 a 12 b 5 c 8

Admin

2行目から始めて3行ごとにグループ化し、結合された2行目と3行目から最初の列を削除します。
linux
bash
sed

2行目から始めて3行ごとにグループ化し、結合された2行目と3行目から最初の列を削除します。

私はUNIXとコーディング全体に初めて触れ、長い間この問題を解決しようとしましたが、成功しませんでした。私はこれが非常に簡単な解決策であると確信していますが、誰かが私を正しい方向に導くことができれば役に立ちます。 次の形式のデータを含むSummary.txtファイルがあります。 Name criteria1 2 3 4 5 6 7 8 9 10 Sample12345 w x y z Sample12345.avg l m n Sample12345.stdn o p q Sample98765 w2 x2 y2 z2 Sample98765.avg l2 m2 n2 Sample98765.stdn o2 p2 q2 その他など 同じサンプル番号を持つ3行を組み合わせて名前だけを保持したいと思います。 Name criteria1 2 3 4 5 6 7 8 9 10 Sample12345 w x y z l m n o p q Sample98765 w2 x2 y2 z2 l2 m2 n2 o2 p2 q2 その他など たとえば、sedを使用してみました(最初にSample12345.avg Sample12345.stdnなどを含むSummary_temp.txtを作成した後)。 for i in `cat Summary_temp.txt`; do sed 's/\n$i//g' Summary.txt; done "-bash:予期しないトークン 'sed'の近くに構文エラーが発生しました。" 私もこの道に行こうとしました。 paste -sd ' ' Summary.txt | sed 's/\t/\n/g10; s/\t/@/g; s/\n/\t/g' | sed 's/.\nSample.*.avg//g' | head 私が得た最も近いものは次のとおりです。 cat Summary.txt | sed 's/ *| */,/g;/^$/d' | paste -d, - - - | head しかし、これは最初の行から始まるので、すべてがマイナス1です。 Name criteria1 2 3 4 5 6 7 8 9 10 Sample12345 w x y z Sample12345.avg l m n Sample12345.stdn o p q Sample98765 w2 x2 y2 z2 Sample98765.avg l2 m2 n2 Sample98765.stdn o2 p2 q2 ETC ETC head -1 Summary.txt > Summary_temp_3.txt 後でもう一度追加できるようにしてみました。 sed '1d' Summary.txt > Summary_temp_4.txt cat Summary_temp_4.txt | sed 's/ *| */,/g;/^$/d' | paste -d, - - - | sed 's/,.*_by_name//g | head これはまったく何も表示しません。最終的にctrl-Cを押す必要があるので、それは時間がかからないので、それが間違っていると仮定します。助けてください。私は初心者であり、これはおそらく簡単に解決できる愚かな問題であることを知っていますが、さらに何を試すべきかわかりません。

Admin

Linux Sedカット|
linux
sed

Linux Sedカット|

実際、ファイルはbmb/case.bmbと同じです。 bmx/eng/case.bmx などの出力が必要です。 次のコマンドを使用しています $ sed "s/bmb/bmx\/eng/g" bmx/eng/case.bmx/eng /eng//またはコマンドから削除したいコマンドを追加して助けることができますか?awkcuttrim

Admin

同じパターンが表示されるまで交差する線を接続する方法
sed

同じパターンが表示されるまで交差する線を接続する方法

ファイルがあります: "p1"data "p2"data "p3"data "p1"data "p2"data "p3"data "p2"data "p3"data "p1"data 次の「p1」が表示されるまで、すべての行を「p1」にリンクしたいと思います。 "p1"data"p2"data"p3"data "p1"data"p2"data"p3"data"p2"data"p3"data "p1"data 引用は文字通りの引用です。数千行の「p2」および「p3」入力ファイルセットが1〜10個ある場合があります。出力ファイルの長さは約600行でなければなりません。 試してみましたsed -e'/^"p1/N;s/\n//'が、何度も実行する必要があり、最終的に「p1」を他の「p1」と関連付けました。 どんな助けでも大変感謝します。ちなみに、このファイルはXMLファイルからのものです。 XMLツールがあることを知っていますがsed。

Admin

大文字の行のみを小文字に変換
text-processing
sed

大文字の行のみを小文字に変換

たとえば、次のような場合があるとします。 One, Two. OnE, Two. ONE, TWO. すべての大文字の行を小文字に置き換えたいので、次のような結果を得ます。 One, Two. OnE, Two. one, two. 努力しています: gsed '/[a-z]/!c\L&' 行と正確に一致しますが、L&に置き換えられます。 One, Two. OnE, Two. L& どのように小文字に変換できますか? Lの前にバックスラッシュを2〜3個試しましたが、出力にのみ表示されます。 より良いオプションがある場合は、awk、tr、または他のユーティリティを使用します。 また、バージョンが重要な場合: gsed --version gsed (GNU sed) 4.9

Admin

特定値から特定値へ grep
bash
awk
sed
grep

特定値から特定値へ grep

たとえば、データを含むファイルがあります。 [2023-03-21 12:27:19 +0000] some_data [2023-03-21 12:27:19 +0000] some_data [2023-03-22 12:27:19 +0000] some_data [2023-03-23 12:27:19 +0000] some_data [2023-03-23 12:27:19 +0000] some_data [2023-03-25 12:27:19 +0000] some_data [2023-03-26 12:27:19 +0000] some_data [2023-03-29 12:27:19 +0000] some_data [2023-03-29 12:27:19 +0000] some_data [2023-03-29 12:27:19 +0000] some_data [2023-03-29 12:27:19 +0000] some_data 次の値を含むすべての行をgrepしたいと思います。2023-03-22到着2023-03-26 だから私はそれに合わせて行きたいです。 [2023-03-22 12:27:19 +0000] some_data [2023-03-23 12:27:19 +0000] some_data [2023-03-23 12:27:19 +0000] some_data [2023-03-25 12:27:19 +0000] some_data [2023-03-26 12:27:19 +0000] some_data grep、sed、awkを使ってこれを行うにはどうすればよいですか? 別のケースがあります: データを含むファイルがあります。 [2023-03-21 00:45:20 +0000] some_data [2023-03-21 01:10:11 +0000] some_data [2023-03-21 02:04:56 +0000] some_data [2023-03-21 12:09:15 +0000] some_data ... ... in this part the lines with the next data with some_data ... ... [2023-03-23 21:40:19 +0000] some_data [2023-03-23 22:15:11 +0000] some_data [2023-03-23 23:40:06 +0000] some_data どのようにラインをgrepしますか?[2023-03-21 01:10:11 +0000]some_data[2023-03-23 22:15:11 +0000] Some_data おそらくgrepに-nフラグを使用できますか?文字列の数[2023-03-21 01:10:11 +0000]を取得し、-nフラグを使用して[2023-03-23 22:15:11 +0000]の値をgrepします。そのコマンドは私にこの行の行番号を返します。 行数がわかっている場合は、特定の行から特定の行まで、多数の日付をどのように取得できますか?

Admin

パスを修正
bash
text-processing
sed

パスを修正

$var変数()に格納されているパスを変更してこれを実行しようとしていますsed。実際、$(dirname "$var")スクリプトの目的に関連した理由で置き換えを行う必要があります。 これの例は、交換するパスが複数含まれている場合varです。パスは任意の場所にあります(1つは行の真ん中近く、もう1つは行の先頭など)。以下に例を示します。var=/dir/dir xyz/file.txtfilenamefilename dog foo/bar /dir/dir xyz/file.txt a b c d /dir/dir xyz/file.txt x y z /dir/dir xyz/file.txt 1234 {[(/dir/dir xyz/file.txt 私が望むもの dog foo/bar . a b c d . x y z . 1234 {[(. 私は次を試しました sed "s|"$(dirname "$var")"|.|g" "$filename" 得るsed: -e expression #1, char 31: unterminated `s' command 助けてください?もちろん、これに加えて他の方法を提案することもできますsed。

Admin

grepとsedの正規表現
sed
grep
regular-expression

grepとsedの正規表現

テキストファイルでaで始まるすべての行を見つけて置き換えようとしています。シングルスペースだから誰のキャラクターも。 最後にgrepで動作する正規表現を得ました。grep -E '^ .*$*' Contacts.vcf >> t.txt その後、sedで使用するときはそうではありません。sed 's/^ .*$//g' Contacts.vcf > tt.txt(最初のスペースに関係なく)すべての行を取得します。\s{1}全部入れてみましたが、()実行できませんね。 初めてWindowsでPowerShellを使用しようとしたときも、同じ問題が発生しました。クロスプラットフォーム正規表現の詳細(?)がありません。 正規表現で単一のスペースで始まる行のみを検索するにはどうすればよいですか?

Admin