タグ付けされた質問 「text-processing」

プログラム、スクリプトなどによるテキストの操作または検査

5
awk sed ifステートメント
「。」がある場合、最初に0を追加しようとしています。その行の2番目の文字。これら2つを組み合わせることができませんでした。 awk '{ print substr( $0, 2, 1 ) }' file.txt 2番目の文字を表示 sed -ie "s/.\{0\}/0/" file.txt 先頭にゼロを追加します。 「2番目の文字がドットの場合」があるはずです。 サンプルファイル: 1.02.2017 23:40:00 10.02.2017 23:40:00 最後の: 01.02.2017 23:40:00 10.02.2017 23:40:00

1
n番目の列にm番目の列が含まれる行を取得する方法
次のようなドメインとウェブメールを含むCSVファイルがあります。 site1.com,mail.site1.com site2.com,testmail.com site3.com,mx.site3.com site4.com,smtp.site4.com site5.com,foomail.com site6.com,barmail.com site7.com,webmail.site7.com site8.com,01mx.site8.com site9.com,foobarmail.com site10.com,mx-smtp222.site10.com 同じ行のドメイン列がwebmails列に含まれている行を取得したい。上記の例の場合、出力は次のようになります。 site1.com,mail.site1.com site3.com,mx.site3.com site4.com,smtp.site4.com site7.com,webmail.site7.com site8.com,01mx.site8.com site10.com,mx-smtp222.site10.com

4
AWK /…による行頭置換の行カウンターをインクリメントする方法
私は最初にSED(sed "s/^/COUNTER \&/" /tmp/1.tex)について考えましたが、それは単一の行用に設計されてawkおりgawk、統合アプローチでの素晴らしい経験があるため、今はsedでカウンター自体をインクリメントできません。データ What & South Dragon & North Dragon & 5 \\ \hline What & South Dragon & North Dragon & 5 \\ \hline What & South Dragon & North Dragon & 5 \\ \hline 期待される出力 1 & What & South Dragon & North Dragon & 5 \\ …

5
sed / awk / grepコマンドを使用して、txtファイルの値を編集します
5年間、私は気象観測所La Crosse WS2350を使用しています。気象ステーションによって提供されるデータは、RPIのopen2300で処理されます。これは非常にうまく機能します。ただし、温度データは誤っています(センサー)。温度データは1°C低くなっています。 センサーのキャリブレーションができないため、ウェザーステーションから抽出したファイルから温度値を変更したいと思います。 このテキストファイル(current.txt)には以下が含まれます。 Date 2016-Dec-03 Time 10:30:29 Ti 11.9 Timin 11.6 Timax 27.7 TTin 10:34 DTimin 2016-01-19 TTimax 00:44 DTimax 2016-08-28 To -2.4 Tomin -4.8 Tomax 37.4 TTomin 06:46 DTomin 2016-02-18 TTomax 16:13 DTomax 2016-07-19 ... 「To」、「Tomin」、「Tomax」の値に+1を追加して、テキストファイルを正しい値で上書きします。 sedとawkコマンドを見て、私は時代遅れであることに気づきました。誰かが私を案内できますか?ありがとう 編集: 私は別のファイルを忘れました:ws2308.log 15分ごとに新しい行がファイルws2308.logに追加されます: ... 20161203150600 2016-Dec-03 15:06:00 11.8 -1.1 -3.2 …


4
awkに関する質問
わかりました、これは複雑な質問なので、はっきりと説明します。次のようなファイルのコンテンツを取得しました。 $ Cat File1 ABC Cool Lol POP {MNB} ABC Cool Lol POP {MNB} ABC Cool Lol POP {MNB} ABC Cool Lol POP {TBMKF} ABC Cool Lol POP {YUKER} ABC Cool Lol POP {EFEFVD} 欲しい出力 -Cool MNB + POP ; -Cool MNB + POP ; -Cool MNB + POP ; …

3
文の終わりの後にある2つのスペースをすべて1つのスペースに置き換える
sedコマンドで正規表現を含めることに行き詰まっています。 Q:文の終わりにある 2つのスペースをすべて1回だけスペースに置き換えたいのですが。 これが私がしたことです: sed 's/^ $/^$/' file そして、文が終わった後、2つのスペースを1つのスペースに置き換えませんでした。 私が得る出力: This is the output. Hello Hello 私が欲しい出力: This is the output. Hello Hello

7
file2から行の正確なブロック(file1の内容)をgrep
2つのファイルがfile1ありfile2ます。 のサンプルコンテンツfile1は次のとおりです。 A B C D E F G H の内容file2は次のようなものです: A B few other lines E F few more other lines A B C D E F G H few more other lines G H したがって、file1コンテンツのブロック全体file2のみを検索したいと考えています。つまり、出力には次の行のみが含まれます。 A B C D E F G H 注意してください:-一緒に来る行のみが出力の一部になるはずです。

3
複数行のコードをsedに置き換える方法は?
特殊文字が含まれている大きなファイルがあります。そこに私が置き換えたい複数行のコードがありsedます。 この: text = "\ ------ ------\n\n\ This message was automatically generated by email software\n\ The delivery of your message has not been affected.\n\n\ ------ ------\n\n" これに変える必要があります: text = "" 次のコードを試しましたが、うまくいきませんでした。 sed -i '/ text = "*/ {N; s/ text = .*affected.\./ text = ""/g}' /etc/exim.conf 何も置き換えず、エラーメッセージも表示しません。 私はそれで遊んでいますが、私がしようとするすべてが機能しません。

5
ファイル内の行を2つにグループ化する方法は?
次のようなテキストファイルがあります。 a b c d e f g これらの行をグループ化して、次のような出力を取得するにはどうすればよいですか。 a-b b-c c-d d-e e-f f-g これはシェル(sh、csh、bash)で行う必要があります。 私はこれを見つけました: cat file | xargs -n2 しかし、最初のグループの最後の要素は、2番目のグループの最初の要素にはなりません。

5
複数のファイルで最後に出現する文字列を見つける
文字列の最後の出現を見つけるには、複数のログファイル(過去24時間に生成されたすべてのファイル、すべて同じディレクトリに保存されている)を検索する必要があります。これは私が書いたコマンドです: find . -mtime 1 | grep fileprefix | xargs grep 'search string' | tail -1 しかし、これは1つのファイルの最後の行のみを返します。これを調整してすべての行を取得する方法に関する提案はありますか?

5
シェルスクリプト:テキストの途中で文字列を取得します。
大きなテキストファイルがあり、その一部が次のようになっています(編集された値)。 JULIANA XXXX006060 LI1033322 THC BRL 730.00 XXXX006296 AA1004737 THC BRL 1,740.00 SANTOS JULIANA XXXX006668 AA1004786 THC BRL 8,150.00 SANTOS JULIANA CABINDA XXXX006697 AA1004777 THC BRL 2,325.00 SANTOS JULIANA XXXX006699 AA1004790 THC BRL 2,325.00 JULIANA BATA XXXX006141 CCC012946 THC BRL 1,460.00 JULIANA BATA XXXX006153 CCC013054 THC BRL 870.00 JULIANA XXXX006269 …

5
2つのファイルの代替行をマージする
ファイル1: .tid.setnr := 1123 .tid.setnr := 3345 .tid.setnr := 5431 .tid.setnr := 89323 ファイル2: .tid.info := 12 .tid.info := 3 .tid.info := 44 .tid.info := 60 出力ファイル: .tid.info := 12 .tid.setnr := 1123 .tid.info := 3 .tid.setnr := 3345 .tid.info := 44 .tid.setnr := 5431 .tid.info := 60 .tid.setnr := …

7
複数行のレコードを分割せずに大きなテキストファイルを効率的に分割する方法
私は大きなテキストファイルを持っています(gzしたとき〜50Gb)。ファイルには4*N行またはNレコードが含まれています。つまり、すべてのレコードは4行で構成されます。このファイルを、入力ファイルのおよそ25%のサイズの4つの小さなファイルに分割したいと思います。ファイルをレコード境界で分割するにはどうすればよいですか? 素朴なアプローチはzcat file | wc -l、行数を取得し、その数を4で除算してからを使用することsplit -l <number> fileです。ただし、これはファイルを2回超えるため、行カウントは非常に遅くなります(36分)。もっと良い方法はありますか? これは近いですが、私が探しているものではありません。受け入れられた回答も行数をカウントします。 編集: このファイルには、fastq形式のシーケンスデータが含まれています。2つのレコードは次のようになります(匿名化)。 @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF<FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF<FAFAFFFFA @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF<FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F<.FFFF.FFF7FF<.FFA<7FA.<.7FF.FFFAFF 各レコードの最初の行はで始まり@ます。 EDIT2: zcat file > /dev/null 31分かかります。 EDIT3: 最初の行のみがで始まり@ます。他の誰もこれまでしません。こちらをご覧ください。レコードは整理された状態である必要があります。結果のファイルに何かを追加することはできません。

8
sedコマンドを使用してLinuxの各行の最後の単語を出力できますか?
以下の行で構成されるファイルがある場合、 12345 567 7878 66 er3 t45t y6y46y 4年6年656年5年 46年6年65年7年66年 yy46y6y 出力は次のようになります。 66 y6y46y y5y y66uyuyy y46y6y コマンドsed 's/.* //g'ファイル名と他のいくつかのsedコマンドを試しましたが、機能しません。 正確なsedコマンドは何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.