最新記事

固定長ファイルの問題
text-processing

固定長ファイルの問題

固定長ファイルの少数のレコードが2つのレコードに分割されます。ファイルは次のようになります。 3番目のレコードは2つのレコードに分割されます。最後から「\r」を削除し、4行目を上に移動して3行目とマージするにはどうすればよいですか? サンプルファイル: Firstrow\n Secondrow\n Third\r\n Row\n Fourthrow\n Fifthrow\n 望ましい最終結果: Firstrow\n secondrow\n Thirdrow\n Fourthrow\n Fifthrow\n

Admin

sed - 一度だけ現れる
text-processing
sed

sed - 一度だけ現れる

次のSEDコマンドを使用しています。 sed '/cell.* '"alatch {"'/,/^}/p' -n file 入力ファイルは次のとおりです。 cell abc { pins on T { a b c } } cell xyz { pins on T { x y z } } cell alatch { pins on T { VSS VDDPI VDDP } pins on L { IN CT CB } pins on R { OUT } inputs { CB CT IN } outputs { OUT } } cell alatch { pins on T { VSS VDDPI VDDP } pins on L { IN CT CB } pins on R { OUT } inputs { CB CT IN } outputs { OUT } } 出力は次のとおりです。 cell alatch { pins on T { VSS VDDPI VDDP } pins on L { IN CT CB } pins on R { OUT } inputs { CB CT IN } outputs { OUT } } cell alatch { pins on T { VSS VDDPI VDDP } pins on L { IN CT CB } pins on R { OUT } inputs { CB CT IN } outputs { OUT } } 予想される出力は次のとおりです。 cell alatch { pins on T { VSS VDDPI VDDP } pins on L { IN CT CB } pins on R { OUT } inputs { CB CT IN } outputs { OUT } } 必要なのは、状況が最初に発生した場合にのみ出力になることです。指揮者のためのアドバイスはありますか?

Admin

Bash / Linuxから特定のポイントまで区切り文字の後のテキストを削除します。
text-processing
command-line

Bash / Linuxから特定のポイントまで区切り文字の後のテキストを削除します。

target_id tpm tpm tpm tpm tpm tpm tpm tpm tpm tpm tpm PB.1.1|1:6643-11779(-)|transcript/55100 9207.33 13266.4 15244.3 2844.27 2708.52 2731.91 3193.83 2675.78 3413.74 4001. 37 3332.62 PB.2.1|1:11961-16372(+)|transcript/24543 14.2016 27.8457 29.6335 7.14533 7.34512 7.64953 8.71118 6.87958 7.228 98 6.3592 5.94422 PB.2.2|1:11961-16373(+)|transcript/30117 2.70221 2.74091 2.81943 3.99669 2.69497 2.82466 3.01701 2.62054 2.958 49 2.48024 2.44429 PB.2.3|1:11962-16374(+)|transcript/35082 1.21596 1.76974 2.24733 1.76356 2.05692 1.7765 1.65524 1.44116 1.970 26 2.16288 1.50391 PB.3.1|1:27833-34327(+)|transcript/44399 71.0007 131.61 145.062 24.9771 23.0295 24.9615 26.8033 20.4961 25.36 6 26.6337 21.9282 PB.4.1|1:39316-44582(-)|transcript/24897 26.5017 37.3793 43.4624 11.1199 8.80527 8.18072 12.612 10.0202 12.24 37 8.06654 7.04677 PB.4.2|1:39317-44595(-)|transcript/39771 9.23018 9.89149 7.58203 10.1779 8.67577 7.9611 8.5775 9.83895 7.638 42 6.40913 6.58653 PB.4.3|1:39318-43423(-)|transcript/29985 20.8149 20.6359 14.5622 3.89209 3.92182 3.4396 4.53606 2.6505 3.979 53 2.92956 2.63565 PB.5.1|1:44841-49854(-)|transcript/24019 36.302 19.7211 18.3107 71.1272 70.6337 65.391 62.6371 61.8226 67.62 43 55.2076 57.7828 だから、小数点以下の最初の数字を削除したいと思います|。たとえば、次のように出力したいと思います。 PB.1.1| 9207.33 13266.4 15244.3 2844.27 2708.52 2731.91 3193.83 2675.78 3413.74 4001. 37 3332.62. そのコマンドを試しましたが、cut最初の区切り文字の後のすべての項目だけが切り捨てられました。ポインタはありますか?

Admin

ログファイルをトリミングするLinuxコマンド
text-processing

ログファイルをトリミングするLinuxコマンド

version.txtというログファイルがあり、キーワードを含むすべての単語をフィルタリングする必要があります(time=。出力は(time=451)次のようになります。 以下は、ログファイルのサンプルエントリです。私がリストしたい項目を強調表示します。切り取りまたは切り捨てると、単語の代わりに行全体が印刷されます(time=。 (time=数字を含む単語から最後まで単語をリストするコマンドを提案してください)。 2020-03-10 06:48:20 [http-nio-7001-exec-7] INFO [5e6770737be8a35b5fef38f7be2a2635] [5fef38f7be2a2635] [] c.l.e.i.a.c.ItemAvailabilityControllerImpl - DeliveryMethod(sosItmNbr=null, fullMtdTyp=3, fullMtdMsg=Delivery, fullCarrier=null, fullCarrierSvc=null, fullTransitMode=null, fullLctNbr=0, restMsg=null, isAvlSts=false, reqStates=[], onhandQty=0, totalQty=0, itmLdTmAvlQty=0, itmLdTm=null, itmConsolidationDate=null, itmLdTmDays=null, itmLdTmDaysLow=null, fullPath=null)])]) (time=451) 2020-03-10 06:48:20 [http-nio-7001-exec-28] INFO [5e677073e64bd99b5997b5bd20c3c4e0] [5997b5bd20c3c4e0] [] c.l.e.i.a.c.ItemAvailabilityControllerImpl - Finished availability process; Response: IAResponse(locationItemData=[ResponseItem(lctNbr=6877, itemNbr=10000070, modID=1500040, omniID=null, vbuNbr=14692, itmTypCode=3, reqQty=17, itemAvailList=[DeliveryMethod(sosItmNbr=null, fullMtdTyp=1, fullMtdMsg=Parcel, fullCarrier=null, fullCarrierSvc=null, fullTransitMode=null, fullLctNbr=0, restMsg=null, isAvlSts=false, reqStates=[], onhandQty=0, totalQty=0, itmLdTmAvlQty=0, itmLdTm=null, itmConsolidationDate=null,(time=455) 2020-03-10 06:48:20 [http-nio-7001-exec-46] INFO [5e6770731c4e323f4cb875712bb0d8ee] [4cb875712bb0d8ee] [] c.l.e.i.a.c.ItemAvailabilityControllerImpl - Finised (time=492) このサンプル入力の出力は次のようになります。 (time=451) (time=455) (time=492)

Admin

psvファイルから複数の列を含むExcelファイルにコピーする
linux
shell-script
text-processing

psvファイルから複数の列を含むExcelファイルにコピーする

私のPSVファイルは次のとおりです Column1|Column2|Column3 Web_Value_in_file|123|OLA Tab_Value_out_file|453|OLA ソース列とターゲット列が異なります。 1列の値を_区切り文字でターゲットの複数の列に切り取りたいです。出力ファイルをExcel(.xlsx)と同じにしたいです。 Column1 Column2 Column3 Web In 123 Tab Out 453

Admin

ファイルの場所の前にスペースを追加する
linux
text-processing
command-line

ファイルの場所の前にスペースを追加する

私のファイルに文字列があります。 7017556626 TEST BSAB 20191108 TEST123 3333 1111 BSAB 11 7007760674 TESTCHAS 20191108 TEST123 4444 5555 CHAS 22 7017556626 TEST 20191108 TEST123 3333 1111 CHAS 33 7017556626 TEST SSEQ 20191108 TEST123 2222 7777 BSAB 44 7007760674 TESTCHAS 20191108 TEST123 1111 0000 55 場所16の前にスペースを追加する必要があります。 7017556626 TEST BSAB 20191108 TEST123 3333 1111 BSAB 11 7007760674 TEST CHAS 20191108 TEST123 4444 5555 CHAS 22 7017556626 TEST 20191108 TEST123 3333 1111 CHAS 33 7017556626 TEST SSEQ 20191108 TEST123 2222 7777 BSAB 44 7007760674 TEST CHAS 20191108 TEST123 1111 0000 55 どうすればいいですか?

Admin

Unixスクリプトで日付と時刻を切り取る方法
linux
text-processing
ksh

Unixスクリプトで日付と時刻を切り取る方法

cutや他の同様のコマンドを使用して日付と時刻を取得する方法を尋ねたい。デフォルトでは、次$lineから検索しますfor loop。 for line in $(cat $file); do getdatetime=$(echo $line | cut -f4 -d,) done サンプル値は次のとおりです$line。 883427446627317909,1114259,1573178423,2019-11-08 02:00:23,RD,4.7,0,351442429 ファイルには、$file例に似た複数行が含まれています$line。 予想される値は次のとおりですgetdatetime。 2019-11-08 02:00:23 しかし、日付だけがわかります。 2019-11-08 cut日付と時刻を抽出する1行のコマンドはありますか? forループの構造を保存する必要があります。ありがとうございます。

Admin

CRで区切られた文字列を複数行に分割し、各行にIDを追加する方法は?
text-processing
aix

CRで区切られた文字列を複数行に分割し、各行にIDを追加する方法は?

次のように、内部キャリッジリターンで区切られた行を含むファイルがあります。 電磁パルス|123|10\アル字型情報|ジョン|スミス|M|1980/01/12\アル字型住所オハイオ州ブリッジロード| 電磁パルス|456|10\アル字型情報|デビッド|パット|M|1980/02/12\アル字型住所オハイオ州ブリッジロード| 電磁パルス|789|10\アル字型情報|ジェーン|マッケンジー|F|1980/03/12\アル字型住所オハイオ州ブリッジロード| CR 間の行部分は|文字でさらに区切られます。 CR文字で各行を別々の行に分割したいです。それからそれぞれ新しい行(つまり、CRを改行文字で置き換えた行)は、|元の行(2番目の区切りフィールド)のIDで始まる必要があります。 予想出力: EMP|123|10 123|INFO|JOHN|SMITH|M|01/12/1980 123|ADDR|125|BRIDGE RD|COLUMBUS|OH EMP|456|10 456|INFO|DAVID|PIRT|M|02/12/1980 456|ADDR|257|BRIDGE RD|COLUMBUS|OH EMP|789|10 789|INFO|JENN|MCKENZI|F|03/12/1980 789|ADDR|389|BRIDGE RD|COLUMBUS|OH IDが繰り返されるので、出力の3行で構成される各セットが同じ(1)入力行に属することがわかります。 次のコマンドを試しましたが、CRを新しい行に置き換えました。新しい行にIDを追加する方法がわかりません。 tr '\r' '\n' < test.txt > new.txt 出力: EMP|123|10 INFO|JOHN|SMITH|M|01/12/1980 ADDR|125|BRIDGE RD|COLUMBUS|OH EMP|456|10 INFO|DAVID|PIRT|M|02/12/1980 ADDR|257|BRIDGE RD|COLUMBUS|OH EMP|789|10 INFO|JENN|MCKENZI|F|03/12/1980 ADDR|389|BRIDGE RD|COLUMBUS|OH どうすればいいですか?

Admin

CSVで重複した列値を見つける
text-processing
csv

CSVで重複した列値を見つける

1行あたりのレコードのみを持つ大規模なcsvファイルで重複するIDを見つけようとしていますが、重複する項目を見つけるための条件が最初の列です。,, 例.csv 11111111,high,6/3/2019 22222222,high,6/3/2019 33333333,high,6/3/2019 11111111,low,5/3/2019 11111111,medium,7/3/2019 希望の出力: 11111111,high,6/3/2019 11111111,low,5/3/2019 11111111,medium,7/3/2019 出力は順次である必要はありません。

Admin

コマンドは対話型シェルでは機能しますが、スクリプトでは機能しません。
text-processing
variable

コマンドは対話型シェルでは機能しますが、スクリプトでは機能しません。

この質問にはすでに答えがあります。: コマンドの出力をシェル変数に割り当てるには? (回答3個) 閉鎖2年前。 プラットフォーム:RHEL7 シェル:バッシュ 予想される結果:値を変数として保存 次のテキストからIPをキャプチャしようとしています。 { "ip": "12.34.56.7", "type": "LEARNED" } 端末で次のコマンドを実行すると、期待どおり IP を取得します。 grep '"ip":' ../path/to/file.txt | awk '{ print $2 }' | tr -d '"' | tr -d ',' スクリプトの内容は次のとおりです。 IP=grep '"ip":' ../path/to/file.txt | awk '{ print $2 }' | tr -d '"' | tr -d ',' IP=私はすべてを引用符で囲むか、サイコロを使用しますが、使用せずにgrep ipテキストの周りの引用符をエスケープするなど、いくつかの他の操作を試しました。\\この問題にアクセスする正しい方法はわかりません。スクリプトに引用符がない場合、スクリプトは私のコマンドを分解するか、何らかの理由でawkから$ 2を削除します。 情報を提供していただきありがとうございます。

Admin