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

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

8
grep-inverse-matchと「前」と「後」の行を除外する方法
次のエントリを含むテキストファイルを考えます。 aaa bbb ccc ddd eee fff ggg hhh iii パターン(例fff)が与えられた場合、上記のファイルをgrepして出力を取得したいと思います。 all_lines except (pattern_matching_lines U (B lines_before) U (A lines_after)) たとえば、B = 2およびの場合、A = 1パターン=の出力fffは次のようになります。 aaa bbb ccc hhh iii grepまたは他のコマンドラインツールでこれを行うにはどうすればよいですか? 注意してください、私がしようとするとき: grep -v 'fff' -A1 -B2 file.txt 欲しいものが得られません。私は代わりに以下を取得します: aaa bbb ccc ddd eee fff -- -- fff ggg hhh …

6
同じヘッダーで複数のファイルを連結する
同じヘッダーとその下の異なるベクターを持つ複数のファイルがあります。それらをすべて連結する必要がありますが、最初のファイルのヘッダーのみを連結し、他のヘッダーはすべて同じであるため連結しないようにします。 例:file1.txt <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> A B C file2.txt <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> D E F 出力が必要です <header>INFO=<ID=DP,Number=1,Type=Integer> <header>INFO=<ID=DP4,Number=4,Type=Integer> A B C D E F Rでスクリプトを記述できますが、シェルでそれが必要ですか?



4
2つのタイムスタンプ間でログを抽出する方法
2つのタイムスタンプ間のすべてのログを抽出したい。一部の行にはタイムスタンプがない場合がありますが、それらの行も必要です。つまり、2つのタイムスタンプの下にあるすべての行が必要です。私のログ構造は次のようになります。 [2014-04-07 23:59:58] CheckForCallAction [ERROR] Exception caught in +CheckForCallAction :: null --Checking user-- Post [2014-04-08 00:00:03] MobileAppRequestFilter [DEBUG] Action requested checkforcall との間のすべてを抽出したい2014-04-07 23:00とし2014-04-08 02:00ます。 開始タイムスタンプまたは終了タイムスタンプがログにない場合がありますが、これら2つのタイムスタンプの間のすべての行が必要です。

9
最後の列のみを印刷する方法は?
echo -e 'one two three\nfour five six\nseven eight nine' one two three four five six seven eight nine この出力を取得するために「マジック」を行うにはどうすればよいですか? three six nine 更新:この特定の方法では必要ありません。行内の列数に関係なく、一般的な解決策が必要です。たとえば、awkは常に最後の列を表示します。

8
Linuxでファイルの最後の列を削除する方法
txtファイルの最後の列を削除したいのですが、列番号がわかりません。どうすればこれができますか? 例: 入力: 1223 1234 1323 ... 2222 123 1233 1234 1233 ... 3444 125 0000 5553 3455 ... 2334 222 そして、出力を次のようにします。 1223 1234 1323 ... 2222 1233 1234 1233 ... 3444 0000 5553 3455 ... 2334


5
shell command Substitutionが末尾の改行文字を飲み込むのはなぜですか?
次の例と、最近の質問 bashのように、末尾の改行文字はどこに消えましたか?、「なぜ」それが起こるのか知りたい x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has been "deleted" by Command Substitution 私は、シェルアクション、つまりコマンド置換から、置換しているコマンド出力からいくつかのデータを実際に削除するための非常に重要な理由 があるはずだと思います... しかし、私はこれを回避することができませんそれがすることになっているもののアンチテーゼ... コマンドの出力をスクリプトプロセスに戻す... 1つの文字を保持することは奇妙に思えますが、それには理にかなった理由があると思います...その理由が何かを知りたいと思っています。 。

9
ファイルから2行ごとに削除する方法は?
ファイル: Data inserted into table. Total count 13 No error occurred Data inserted into table. Total count 45 No error occurred Data inserted into table. Total count 14 No error occurred Data inserted into table. Total count 90 No error occurred 期待される出力ファイル: Data inserted into table. Total count 13 Data …

2
trは「不正なバイトシーケンス」について不平を言っています
私はUNIXが初めてで、Kirk McElhearnの「The Mac OS X Command Line」を使用していくつかのコマンドを習得しています。 私が使用しようとしていますtrとgrepなるように、私は、通常のMS-OfficeのWord文書内のテキスト文字列を検索することができます。 $ tr '\r' '\n' < target-file | grep search-string ただし、返されるのは次のとおりです。 Illegal byte sequence. robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS tr: Illegal byte sequence robomechanoid:Position-Paper-Final-Draft robertjralph$ 実際に作成したスクリプトで同じ行を実行しましviたが、検索は正しく実行されます。

3
ファイル内の2行が同じかどうかを確認するUnixコマンド?
ファイル内の2行が同じであるかどうかを確認できるUNIXコマンドはありますか? たとえば、ファイルを検討する sentences.txt This is sentence X This is sentence Y This is sentence Z This is sentence X This is sentence A This is sentence B 私たちはその文を見る This is sentence X 繰り返されます。 これをすばやく検出できるコマンドがあるので、おそらく次のように実行できます。 $ cat sentences.txt | thecommand Line 1:This is sentence X Line 4:This is sentence X

5
ファイル内のテキストをgrepし、そのテキストを含む段落を表示する方法は?
ファイル内のテキストは次のとおりです。 Pseudo name=Apple Code=42B state=fault Pseudo name=Prance Code=43B state=good 「42B」をgrepして、上記のテキストから次のような出力を取得する必要があります。 Pseudo name=Apple Code=42B state=fault grep/ awk/ を使用してこれを達成する方法について誰にもアイデアがありますsedか?

8
Bashの複数のテキストファイルの先頭と末尾にテキストを追加するにはどうすればよいですか?
テキストファイルでいっぱいのディレクトリがあります。私の目標は、すべてのテキストの最初と最後にテキストを追加することです。先頭と末尾にあるテキストは、各ファイルで同じです。 Webから取得したコードに基づいて、これはファイルの先頭に追加するためのコードです。 echo -e 'var language = {\n$(cat $BASEDIR/Translations/Javascript/*.txt)' > $BASEDIR/Translations/Javascript/*.txt これは、ファイルの最後に追加するためのコードです。目標は};、各ファイルの最後にテキストを追加することです。 echo "};" >> $BASEDIR/Translations/Javascript/*.txt 私が描いた例は、個々のファイルを操作するためのものでした。ワイルドカードを使用して、複数のファイルを操作してみようと思いました*.txt。 私も他の間違いを犯しているかもしれません。いずれにしても、複数のファイルの最初と最後にテキストを追加するにはどうすればよいですか?

6
Pythonプログラムを適切なUNIXツールのように動作させるにはどうすればよいですか?
いくつかのPythonスクリプトがあり、それらの書き直しに取り組んでいます。私はそれらすべてに同じ問題を抱えています。 適切なUNIXツールのように動作するようにプログラムを記述する方法は明らかではありません。 これは $ cat characters | progname この $ progname characters 同じ出力を生成するはずです。 Pythonで見つけられた最も近いものはfileinputライブラリでした。残念ながら、Pythonスクリプトを書き換える方法は実際にはわかりません。これらはすべて次のようになります。 #!/usr/bin/env python # coding=UTF-8 import sys, re for file in sys.argv[1:]: f = open(file) fs = f.read() regexnl = re.compile('[^\s\w.,?!:;-]') rstuff = regexnl.sub('', fs) f.close() print rstuff ファイル入力ライブラリは、stdinがある場合はstdinを処理し、ファイルがある場合はファイルを処理します。しかし、それは単一行にわたって反復します。 import fileinput for line in fileinput.input(): process(line) 私は本当にそれを得ません。あなたが小さなファイルを扱っている場合、またはあなたがファイルに多くのことをしていないなら、これは明白に見えるかもしれません。しかし、私の目的では、上記のようにファイル全体を開いて文字列に読み込むよりもはるかに遅くなります。 …

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