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

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

1
LinuxでCSVをXLSファイルに変換する
次のPerlスクリプトはCSVファイルをXLSファイルに変換できます 問題は、顧客のLinuxマシンに多くのPerlモジュールをインストールする必要があることです。 このPerlスクリプトを実行するために、そして実際には私はできません。Linuxマシンは顧客のマシンだからです(モジュールをインストールすることはできません) そのため、このPerlスクリプトの他の代替手段を見つける必要があります 最初の顧客はLinux red-hatマシンバージョン5.Xを持っています そして、perlスクリプトと同じように機能するbash / ksh / sh / awkスクリプトを見つけたい CSVをXLSファイルに変換する他の代替策を見つけたい このスクリプトを見つける方法を教えてください。またはLinuxマシンでCSVをXLSに変換するためのその他のアドバイス #!/usr/bin/perl -w ############################################################################### # # Example of how to use the WriteExcel module # # Simple program to convert a CSV comma-separated value file to an Excel file. # This is more or less an …
10 linux  bash  shell-script  awk  perl 

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 何も置き換えず、エラーメッセージも表示しません。 私はそれで遊んでいますが、私がしようとするすべてが機能しません。

2
エコーテスト| stty -echo-> stty:標準入力:デバイスの不適切なioctl
私は次のようにユーザー入力を受け取るperlスクリプトで遊んでいました: system( qw( stty -echo ) ); $? == 0 or die "Error unable to disable character printing.\n"; print "$prompt: "; my $input = <STDIN>; echoを使用して応答をパイプすることができると思いましたが、stty -echoコマンドと競合し、次のエラーを生成します。 stty: standard input: Inappropriate ioctl for device perlスクリプトを変更せずに、入力を渡すためにbashで何ができるでしょうか?何が問題の原因ですか?
9 bash  perl  stty 

2
文字列を順次インデックスに置き換えます
誰かがこれを達成するためのエレガントな方法を提案できますか? 入力: test instant () test instant () ... test instant () //total 1000 lines 出力は次のようになります。 test instant1 () test instant2 () test instant1000() 空の行が入力ファイルにあり、同じディレクトリの下に一度に処理する必要のあるファイルがたくさんあります。 同じディレクトリ内の多くのファイルを置き換えるためにこれを試してみましたが、機能しませんでした。 for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done エラー: Substitution replacement not terminated at -e line 1. Substitution replacement …

2
テキストファイルから不明なUnicode文字を削除-sed、その他のbash / shellメソッド
同じ名前のいくつかのファイルで、不明な文字のすべての出現を検索して置き換える必要があります。 そのようなファイルをviで開いて、その文字の<91>コードを読みました。それらをnanoで開くと、私はダイヤモンド(黒いランブル)の「疑問符」を読みました。 このような不明な文字を引用符( ')に置き換えたいと思います。私は運が悪いのにいろいろな方法を試しています。 私は試した: find ./ -name filename.txt -exec perl -i~ -pe "s/\x91/'/" {} \; find ./ -name filename.txt -exec sed -i "s/\x91/'/g" {} \; 編集 キャラクターの詳細: Hexadecimal: 91 68 74 74 Decimal: 145 104 116 116 Octal: 221 150 164 164 Binary: 10010001 01101000 01110100 01110100 LC_ALL=C sed …

8
/usr/share/perl5/IO/Socket/SSL.pm行332で指定されたSSL_versionが無効です
PCを(k)ubuntu 12.04から12.10にアップグレードしたため、を使用してメールを送信しようとすると、このエラーメッセージが表示されますsendemail。 古いバージョンのIO :: Socket :: SSLをインストールすることはできません。すべて正常に機能し、メッセージは単なる警告であるという印象があります。 このメッセージを削除するにはどうすればよいですか? SSL.pm 以下は問題と関係があると思います(/usr/share/perl5/IO/Socket/SSL.pm)。 34 use constant DEFAULT_VERSION => 'SSLv23:!SSLv2'; ... 251 my %default_args = ( 252 Proto => 'tcp', 253 SSL_server => $is_server, 254 SSL_use_cert => $is_server, 255 SSL_check_crl => 0, 256 SSL_version => DEFAULT_VERSION, 257 SSL_verify_mode => SSL_VERIFY_NONE, 258 SSL_verify_callback => undef, …
9 perl  ssl  ubuntu 


1
sedまたはawkの複数の行の置き換え[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 5年前休業。 私はsedまたはawkを使用してsmbファイルの5行を置き換えようとしていますが、改行を処理する方法がわかりません。
9 sed  awk  scripting  perl 

3
ファイルの最後から最後のカンマ区切りを削除するにはどうすればよいですか?
Linuxでファイルから最後のカンマ区切りを削除するにはどうすればよいですか? ファイルの例: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536", 予期された結果: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536"

2
「sed」内でコマンドを実行する
テキストファイルに保存されたランダムメモリアドレスのリストがありsedます。それらを取り出してデコードし、ファイルに保存する必要があります。ただし、実行しようとしているデコード操作は、少し前に作成したC ++プログラムで処理されます。現在直面している問題は、sedコマンド内でC ++を実行することです。つまり、デコードが必要な部分を後方参照し、それをC ++プログラムの引数として使用したいのです。私は次のコマンドを書きました: cat $1 | sed -r 's/(0[Xx])([0-9A-Za-z]{1,8})/\1`./convAddrs \2`/g'; コマンドを実行しないというこの投稿の回答を読む機会があった前にsed。sedコマンドの実行を許可しないのは本当ですか?もしそうなら、私が書いたコマンドが有効なsedシーケンスであると仮定すると、どのようにそれを書けperlますか?

5
すべての列にNAを含む行を削除する
次のようなタブ区切りファイルがあります。 gene v1 v2 v3 v4 g1 NA NA NA NA g2 NA NA 2 3 g3 NA NA NA NA g4 1 2 3 2 各行のフィールド数は固定され、同じです。列2から最後までのすべての行のすべてのフィールドがNAである上記のファイルからそれらの行を削除します。次に、出力は次のようになります。 gene v1 v2 v3 v4 g2 NA NA 2 3 g4 1 2 3 2


2
Perl名前変更ツール(Debian)で算術を実行しようとしています
5つのmp3ファイルがあるとします。 01-trackfoo.mp3 02-trackbar.mp3 03-trackbaz.mp3 04-trackabc.mp3 05-trackxyz.mp3 これで、ファイルをすばやく聴くことができ(コンソールのmplayerでうまくいきます)、トラックの順序が間違っていることがわかりました。05は実際には02で、残りは名前を変更する必要があります。したがって、最初に一時的な名前変更を行います。 01-trackfoo.mp3 02-trackbar.mp3 03-trackbaz.mp3 04-trackabc.mp3 00-trackxyz.mp3 ここで、「シフト」が必要です。02は03に、03は04に、04は05にすべきです。混乱を最小限に抑えるために、ex-05(現在は00)はmv後で編集されます。 私のアプローチはこれでした:(perl rename、Larry Wall、デフォルトはここDebian) rename 's/0([2-4])([\s\S]+)/0($1+1)$2/' * 同様に(後で、さらにRTFMを実行した後) rename 's/0([2-4])([\s\S]+)/0($1+1)$2/e' * 特に/e[val]修飾子が評価以外のものを受け入れず、評価と文字列を組み合わせようとするとエラーがスローされるため、それらはどれも機能しませんでした。bash例えば、うまくそれを行うことができます foo$((1+6))に評価されますfoo7。 では、これをどのように行うことができますか(これだけのためにスタンドアロンスクリプト全体を作成するつもりはなく、1行が望ましい)。

2
Perl結合を適切に使用して、各出現に何かを追加することができません-「演算子が期待される場所に配列が見つかりました」エラーを取得する
このようなログ行があります- /mnt/internal-app/logs/internal-app.log_2019-08-21.log.gz:2019-08-21 07:31:14,153 5458142 [XNIO-3 task-4] INFO c.c.p.i.m.ws.FileManger [FileName.java:1838] - UUIDs in this bucket 8501792126581991569,8073766106536916628,4830289023695906800,6135982080116553120,8306484440313978157,9040948912536460872,8471856544054164043,5431263453539111247,7661719762428556576 /mnt/internal-app/logs/internal-app.log_2019-08-21.log.gz:2019-08-21 07:31:14,153 5458144 [XNIO-3 task-4] INFO c.c.p.i.m.ws.FileManger [FileName.java:1838] - UUIDs in this bucket 6501792126581991569,8073766106536916628,4830289023695906800,6135982080116553120,8306484440313978157,9040948912536460872,8471856544054164043,5431263453539111247,7661719762428556576 catの出力でperlを使用してUUIDを取得し、それぞれを二重引用符で囲みます- cat eligible_uuids_final_app1.txt | perl -ne 'chomp;if(s/^.*UUIDs in this bucket //){@uuids=split(/,/); print "," , join ",",map{qq/"$_"/} @uuids; }' 取得 - "9556896620363267700","7159125371810704365" …
1 perl 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.