タグ付けされた質問 「perl」

Perlは、高水準で汎用のインタプリタ型動的プログラミング言語です。それはもともと、レポート処理を容易にするための汎用Unixスクリプト言語としてLarry Wallによって開発され、オープンソースコミュニティのサポートを得て、グラフィックプログラミング、システム管理、ネットワークプログラミング、ファイナンスに使用できるように進化および成熟しました。 、バイオインフォマティクス、およびその他のエンジニアリングアプリケーション。

8
ファイル内の文字列を置き換えるにはどうすればよいですか?
特定の検索条件に基づいてファイル内の文字列を置き換えることは非常に一般的なタスクです。どうやって 現在のディレクトリ内のすべてのファイルで文字列fooを置き換えますbarか? サブディレクトリにも同じことを繰り返しますか? ファイル名が別の文字列と一致する場合にのみ置き換えますか? 特定のコンテキストで文字列が見つかった場合にのみ置き換えますか? 文字列が特定の行番号にある場合は置き換えますか? 複数の文字列を同じ置換で置き換えます 複数の文字列を異なる置換に置き換えます
752 text-processing  awk  sed  perl 

3
シェルスクリプトでの$ {1 +“ $ @”}の意味と、「$ @」との違いは何ですか?
Perlのドキュメントでは、perlrun(1)は、バイリンガルシェル/ Perlヘッダーを使用してPerlスクリプトを起動することを提案しています。 #!/bin/sh #! -*-perl-*- eval 'exec perl -x -wS $0 ${1+"$@"}' if 0; どういう${1+"$@"}意味ですか?"$@"代わりに(Bashを/ bin / shとして使用して)使用してみましたが、同様に機能するようです。 編集 以下の2つの回答は、にあるはずだと言っています${1:+"$@"}。${parameter:+word}bash(1)で文書化されている( "Use Alternate Value")構文を知っています。しかし、私は納得できません。なぜなら 両方${1+"$@"}と"$@"うまく、パラメータがない場合でも作業。としてsimple.shを作成した場合 #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 "$@"' if 0; #!perl use Data::Dumper; print Dumper(\@ARGV); およびquestion.shとして #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 ${1+"$@"}' …
43 bash  shell  perl 

6
ディレクトリ内のすべてのファイルの行数を人間が読める形式でどのようにリストしますか。
大きなcsvファイルを含むディレクトリとサブディレクトリのリストがあります。これらのファイルには約5億行あり、それぞれがレコードです。私が知りたいのですが 各ファイルの行数。 ディレクトリ内の行数。 合計何行 最も重要なことは、「人間が読める形式」でこれが必要なことです。12345678ではなく12,345,678 3つの方法でこれを行う方法を学ぶといいでしょう。プレーンバニラバッシュツール、awkなど、およびperl(またはpython)。
40 bash  awk  python  perl 

7
PowerShellの「1対多」リモート処理に相当するLinux
Windows管理から来て、Linux(Debian)をさらに掘り下げたいと思います。Webの検索に答えることができなかった(見つけられなかった)私の非常に難しい質問の1つは、PowerShell for Windowsのようないわゆる「一対多」のリモーティングをどのように達成できるかということです。 それを基本に分解するには: Linuxに関する私の見解: サーバーにsshしてコマンドを入力できます 結果が得られました。10台のサーバーの環境では、それぞれにコマンドを送信する(perl / python?)スクリプトを作成する必要がありますか? Windowsからの私の経験: コマンドを入力し、「invoke-command」を使用して、これを多数のサーバー(テキストファイルから)に「送信」して、同時に実行し、結果を(さらなる作業のオブジェクトとして)取得します。 複数のセッションを確立することもでき、接続はバックグラウンドで保持され、これらのセッションに選択的にコマンドを送信し、必要に応じてリモートで入出力できます。 (シェフ、パペットなどについて聞いたことがあります。これはそのようなものですか?) Update 2019: 多くのことをしようとした後-私はお勧めレックス(参照以下このコメントを簡単にセットアップ(あなたが少しだけを知っていれば、使用する(効果的にそれだけのssh、他には何が必要) - )はPerlそれも良いでしょうが、それはオプションです) でレックス(IFYを)アドホックコマンドを実行して実際の構成管理に進めることができます(...つまり、それは最初のCMですが、アドホックタスクにも適しています)Webサイトは古くなっていますが、現在(2019年1月現在)それは活発に開発されており、IRCチャネルもアクティブです。 Windowsの新しいopensshでは、さらに多くの可能性があります あなたが試すことができます: rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'


10
パターン(マーカー)の前にファイルのコンテンツを別のファイルに挿入する方法は?
File1 内容: line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" File2 内容: line1-file2 "25" line2-file2 "24" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" perl / shellスクリプトの実行後、File2コンテンツは次のようになります。 line1-file2 "25" line2-file2 "24" line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" すなわち、「ポインタ」を含む行の前にFile1in の内容を貼り付けFile2ます。

4
特定の範囲の行の長さを「grep」する方法は?
注:この質問は、このQ&Aを補完するものです。特定の範囲ではなく、行の長さを「grep」するにはどうすればよいですか? テキストファイル(改行で区切られたワードリスト)から行を取得する必要があるのは、長さが3文字以上で10文字以下の範囲です。 例: 入力: egyezményét megkíván ki alma kevesen meghatározó 出力: megkíván alma kevesen 質問:どうすればこれを行うことができbashますか?
28 bash  sed  grep  perl 


13
CSVをTSVに変換する
多数の大きなCSVファイルがあり、それらをTSV(タブ区切り形式)で希望しています。複雑なのは、CSVファイルのフィールドにコンマが含まれていることです。例: A,,C,"D,E,F","G",I,"K,L,M",Z 期待される出力: A C D,E,F G I K,L,M Z (その間の空白は「ハード」タブです) このサーバーにPerl、Python、およびcoreutilsがインストールされています。


1
シバン後のサイン?
Apacheのhttpdプロジェクトの「サポート/ apxs.in」スクリプトで囲まれたテキストの@兆候が後に来ます#!。つまり、スクリプトの最初の行は次のとおりです。 #!@perlbin@ -w これはPerlのものですか、それともUNIXカーネルのものですか?つまり、path/to/script/script_name.in?を使用してこのスクリプトを実行することが可能です。 そうでない場合、スクリプトを開始する理由は何#!ですか?

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
ファイル内のテキストを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か?

1
すべての名前変更:prename、rename、file-renameとは何ですか?
私のDebianシステム(まあ、私のLMDEシステムですが、十分に近い)には、少なくとも3つの異なるrenameプログラムがあります。 /usr/local/bin/rename:これは、Tom Christiansenによって書かれたPerlスクリプトです。奇妙なことに、どのパッケージがインストールされているのかわかりません。 $ dpkg -S /usr/local/bin/rename dpkg-query: no path found matching pattern /usr/local/bin/rename /usr/bin/prename:Robin Barkerによって作成された別のperlスクリプト。これはperlパッケージの一部です。 $ dpkg -S /usr/bin/prename perl: /usr/bin/prename /usr/bin/file-rename:さらに別のPerlスクリプト。明確な著者情報はありませんが、Larry(おそらくWall)とRobin(おそらくBarker)の両方が言及されています。これはrenameパッケージによってインストールされ、symlinkedにもあります/usr/bin/rename: $ dpkg -S /usr/bin/file-rename rename: /usr/bin/file-rename 私も持っrename.ulてutil-linuxいますが、今のところそれを無視しましょう。これら3つのPerlスクリプトの違いは何ですか?それらはすべて同じmanページを持っているようman renameでman file-rename、man prenameすべて同じページを提供してくれます。 スクリプト自体を調べて違いを理解しようとすることもできますが、それは簡単なことではありません。Debianの世界が3つの別個のPerl名前変更スクリプトを必要とする理由を説明するためのボーナスポイント。
24 debian  perl  rename 

1
ファイル内のパターンを他のファイルのコンテンツで置き換える
テキストファイル(devel.xml)があります。 この文字列を別のファイル内のコンテンツに置き換えるために、単語REPLACETHISを追加しました(temp.txt)。 私が持っている最も近いものはこれです: sed -i -e "/REPLACETHIS/r temp.TXT" -e "s///" devel.txt; これにより、文字列の後にコンテンツが挿入され、その後文字列が削除されます。 これが最善の方法ですか?

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