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

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

1
特定の番号のみが含まれている場合、sedを使用して行全体を削除する
txtファイルがあります 123 456 789 456 123456 ファイル(123)から特定の文字を削除したい。私が試した $ sed -i '/123/d' dummy.sh $ vi dumm.txt 456 789 456 以下のコマンドで、両方の単語(123と123456)を実行すると削除さ123れますが、ファイルからのみ削除する必要があります $ sed -i 's/123//g' dummy.sh $ vi dumm.txt 456 789 456 456 以下のコマンドを実行する123と、nullに置き換えられます。 特定の番号のみが含まれている行全体を削除する方法を誰かが言うことができますか?

2
sedまたはawkを使用して、いくつかの文字を除くすべての行の.txtファイルに文字列を追加する方法
次の名前のテキストファイルがありますxid.txt。 xid: SC48028 id: artf398444 xid: indv1000 id: indv24519 xid: SC32173 id: artf398402 xid: SC21033 id: artf398372 xid: 1001 id: tracker4868 xid: wiki1000 id: wiki10709 xid: proj1234 id: proj12556 「SC48028」、「SC32173」などの前に「PT_」という文字列を追加する必要があります。文字列「SC ...」は、「AC ...」または「DL ..」の任意の組み合わせで開始できます。 必要な出力: xid: PT_SC48028 id: artf398444 xid: indv1000 id: indv24519 xid: PT_SC32173 id: artf398402 xid: PT_SC21033 id: artf398372 …

5
コンマ区切りリストの最後のエントリを変更する
次のような巨大なテキストファイルがあります。 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,3 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,8 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,12 望ましい出力はこれです: 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-03 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-08 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,MI-12 ここや他のコミュニティで他の関連する投稿を試しましたが、私が望むものを正確に得ることができませんでした。 更新 これは、興味深い答えがある質問(Unix / perlとバッチ/ powershellの両方のソリューションが必要でした)です。


4
行内のパターンの発生を数える方法
3つの列を持つファイルがあります。列3には遺伝子の名前が含まれており、次のようになります。 Rv0729,Rv0993,Rv1408 Rv0162c,Rv0761c,Rv1862,Rv3086 Rv2790c 各行の遺伝子の数をどのように印刷できますか?


6
1つの列のすべての値を1に置き換えます
12行3列のテキストファイルが複数あります。 例: 2 6 0.74 42 6 0.58 80 6 0 112 6 0.24 132 6 1 216 6 0.7 342 6 0 390 6 0.21 432 6 0.56 466 6 0.75 524 6 0.6 646 6 0.9 すべての行で3番目の列のすべての値を1に設定したいと思います。 出力は次のようになります。 2 6 1 42 6 1 80 6 1 112 …


3
数値を含む3つ以上のファイルを並べて比較
行ごとに1つずつ、並べ替えられた一連の数値を含む3つのファイルがあります。 file1 1 2 3 file2 1 3 4 file3 1 5 これらの3つのファイルを次のように並べて「整列」したいと思います。 file1 file2 file3 1 1 1 2 3 3 4 5 私は試しましたsdiffが、2つのファイルでしか機能しません

5
**で始まる行を見つける方法
ファイル内の行がで始まるかどうかを確認する必要があります**。 *シェルによってワイルドカードとして解釈されるため、その方法を理解できません。 grep -i "^2" test.out 行が2で始まる場合に機能しますが、 grep -i "^**" test.out 明らかに動作しません。 (この行がaで終わるかどうかも知る必要)がありますが、まだ試みていません)。

4
/ etc / passwdのgrepを使用してリストされているすべてのユーザーのホームディレクトリを見つける必要があります
このサイトの別の質問と同様の質問があります。個人が/ etc / passwdからgrepまたはawkを使用してすべてのユーザーのリストを見つける必要がありました。それは私にとってはうまくいきましたが、私はそれを翻訳してそれらのホームディレクトリも見つけてリストすることを試みました。私はあなたが一行でそれを行うことができないことをすでに知っているので、私はパイプラインを使用することを知っています。私はオンラインで調査を行いましたが、問題を理解できません。grepを使用して、次のようなことをした場合: grep -oE '^[/*/]$' /etc/passwd ...おそらくエラーになるか、または/ bin / bashファイルも表示されますが、これは私が望んでいるものではありません。ユーザー名とそのホームディレクトリがgrepを使用してリストされているだけです。一部のホームディレクトリには2つ以上の/(スラッシュ)があるため、*が他のスラッシュを文字として表示するかどうかもわかりません。

3
3つの単一引用符の間のテキストを抽出する
次のファイルを持っています description: ''' This rule forbids throwing string literals or interpolations. While JavaScript (and CoffeeScript by extension) allow any expression to be thrown, it is best to only throw <a href="https://developer.mozilla.org /en/JavaScript/Reference/Global_Objects/Error"> Error</a> objects, because they contain valuable debugging information like the stack trace. Because of JavaScript's dynamic nature, CoffeeLint …

3
grepはファイルがバイナリであるとどのように判断しますか?
よく検索する大きなutf-8テキストファイルを持っていgrepます。最近grep、それがバイナリファイルであると報告し始めました。で引き続き検索できgrep -aますが、どのような変更によってファイルがバイナリであると判断されたのでしょうか。 先月のコピーがあり、ファイルはバイナリとして検出されなくなりdiffましたが、20,000行を超えるため、実用的ではありません。 file 私のファイルを 行が非常に長いUTF-8 Unicode英語テキスト 文字/行/その他を見つけるにはどうすればよいですか。この変更を引き起こしている私のファイルで? 同様の、重複していない質問19907はNULの可能性をカバーgrep -Pc '[\x00-\x1F]'していますが、NULや他のANSI制御装置がないと述べています。



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