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

スクリプトは、スタンドアロンの実行可能プログラムにコンパイルされるのではなく、インタープリタープログラムによって実行される一連のコマンドまたは命令です。

8
コンテンツによって重複するPDFファイルを見つける
一部のジャーナルは、ダウンロードごとに異なるPDFを生成します。たとえば、APSは時間とIPアドレスをPDFに保存します。 または、ハイパーリンク付きの紙バージョンとテキスト参照付きの紙バージョンがあります。 オープンソースソフトウェアを使用して、Linuxシステムでコンテンツが90%等しい論文の重複ダウンロードをどのように見つけることができますか? 一時ディレクトリでPDFファイルをプレーンテキストに変換することを検討していますpdf2txt。次にdiff a b、x行を超える結果となるすべてのファイル名をフィルタリングできます。しかし、これはまったくエレガントではなく、スキャンされた出版物では失敗します。多くの場合、ジャーナルは古い出版物のOCRテキストを提供していません。 compareImageMagickスイートも試してみましたが、このツールでは複数ページのPDFファイルを処理できませんでした。 diffpdf 2.1.1は、2つのファイルのGUIでうまく機能しますが、多くのファイルにそれを適用する方法を理解できませんでした。また、オープンソースライセンスでは最新バージョンを利用できません。

1
sedのN番目から最後の行以外をすべて印刷するにはどうすればよいですか?
の補完/反対をしたい sed 13q;d <file.txt より一般的には、この種の補数/逆数/逆数をこのようにすることは可能sedですか?または正規表現のみですか? 最後から3行目以外のすべてを印刷するにはどうすればよいですか。これには2 tacの値が必要であり、それを数える必要がありsedますか?それともsed、後ろから数える方法はありますか?

1
.docxファイルをプレーンテキストに変換し、改行を保持してソースドキュメントへの行番号参照を維持する:ハウツーと影響?
MS Wordのコンテンツをプレーンテキストにエクスポートして、text&fileユーティリティで使用します。MSソフトウェアで行番号付け機能が有効になっているという制約があり、最終出力の行番号への参照はすべてその番号付けと一致する必要があります。したがって、「番号付け行」を入力します。 (ポー、EA) 明らかにWordの場合、この種の番号付けは改行で改行せず、右マージン(または何か)の後の「行」を改行します。のようなスクリプトはdocx2txt、デフォルトではこれを考慮に入れていないようで、改行で改行します。したがってgrep -n、番号付けを使用すると、上記のように、行はソース行番号機能と一致しません。この場合、Perlスクリプトを編集してファイルを変換する方法をドキュメントから明確に明確にすることはできません。 our $config_newLine = "\n"; # Alternative is "\r\n". our $config_lineWidth = 80; # Line width, used for short line justification. 代用\nしてみました\r\nが、うまくいきません。そこで、次の設定でWordから直接ドキュメントをエクスポートすることにしました(v.2013,64pcでプレーンテキストとして保存)。 Unicode(UTF-8) (CR / LF)で改行と行末を挿入 文字の置換を許可する そして実際に、ファイルを使用する.txtと、ソース番号付け機能の行番号とgrep -n出力が完全に一致します。 私が知っている必要がある特定の構成/プロセス、docx2txtまたは私がしたようにWordに頼ることなく改行を維持しながら.docxファイルをプレーンテキストに変換できる同様のコマンドラインユーティリティはありますか? 改行やフォーマットに関して、MS Wordドキュメント(アクセント付き文字が含まれている場合があります)をプレーンテキストにエクスポートしてファイル/テキストユーティリティで使用する場合のベストプラクティスはどれですか。また、エクスポート用に選択した設定、つまりCR / LFの挿入に否定的な影響はありますか? サンプル 提案されているように、サンプルを提供します。このrar アーカイブでは、単純な段落を含む.docxファイルと、前述のオプションを使用してWordを使用してエクスポートされた.txtファイルをバンドルしました。後者はdocx2txt、ソースファイルのデフォルトの実行と比較できます。

3
デバイス全体を使用する単一のパーティションの作成をスクリプト化するにはどうすればよいですか?
私は特にこれを使用して、Amazon EC2インスタンスのEBSボリュームをパーティション化してマウントしますが、実際には、これは新しいドライブの初期化に一般的に適用できるはずです。 質問にあるように、特定のデバイスで利用可能なすべてのスペースを使用する単一のプライマリパーティションの作成をスクリプト化したいと思います。デバイスの大きさが事前にわからないので、非常に大きくなる可能性があります(つまり、数TB)。 これを調査partedする場合、スクリプト作成に使用するのに最適なコマンドのようです。私はに沿って何かparted /dev/sdf mkpart primary 0 ENDが欲しいと思いますが、ENDがどうあるべきかを決定するためのエレガントな方法を理解するのに苦労しています。誰かがこれを行う簡単な方法を知っていますか?

5
ルート書き込み権限のみを持つファイルに行を追加し、スクリプトの実行を継続する方法
私はbashスクリプトを学習しようとしています。私は実用的な問題に取り組んでおり、ある時点でroot、書き込み許可が必要なファイルに行を追加する必要があります。 コードは次のようになります。 # some code echo "add this line to the code" >> fileName # some code どういうわけかスクリプトにrootパスワードを要求させ、パスワードを検証し、認証が成功したらファイルを変更することは可能ですか?その後、スクリプトはユーザーモードに戻り、コマンドの実行を続行します。

1
トラップを使用して終了を確認しました
Ctrl+Cユーザーに確認を求める信号をトラップしようとしています。トラッピング部分は正常に動作します。ただし、信号がトラップされると、通常の実行に戻りません。代わりに、スクリプトを終了します。ユーザーがいいえを押したときに実行を再開させる方法。 これが私のコードです hell() { echo "Do you want to quit? Press 1 for yes and 0 for no"; read n; if [ $n == 1 ]; then exit 1; fi } trap "hell" SIGINT find /

7
SSHを介してバッチモードでコマンドを実行する方法
ssh経由でバッチモードでコマンドを実行するにはどうすればよいですか?つまり、sshコマンドに相当するものは何sftp -b <filename> <hostname>ですか? を介して接続している一連のホストで実行したい一連のコマンドがありますssh。以上sftp、コマンドをファイルに保存filenameしてホストに接続し、前述のコマンドを使用してコマンドを実行します。 そのようなことは可能sshですか?

2
サブシェルなしでbashのコマンドの出力を反復する
サブシェルを作成したり、一時ファイルを使用したりせずに、コマンドの出力をループしたい。 私のスクリプトの最初のバージョンはこのように見えましたが、サブシェルを作成するため、これは機能しません。exitコマンドは、必要なメインスクリプトの代わりにサブシェルを終了します。これは、ポリシールーティングを構成するためのはるかに大きなスクリプトの一部であり、ルーティングが失敗する原因となる条件を検出すると実行を停止します。 sysctl -a 2>/dev/null | grep '\.rp_filter' | while read -r -a RPSTAT ; do if [[ "0" != "${RPSTAT[2]}" ]] ; then echo >&2 "RP Filter must be disabled on all interfaces!" echo >&2 "The RP filter feature is incompatible with policy routing" exit 1 fi done したがって、推奨される代替策の1つは、このようなコマンドを使用してサブシェルを回避することです。 …

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

6
現在の時刻が23:00から06:30の間にあるかどうかを確認する方法
現在の時刻が23:00から06:30の間である場合、bashスクリプトから適切にチェックする方法を理解するのに苦労しています。時刻を確認するために無限ループを実行し、時間範囲が午後11時から午前6時30分の間の場合は何かを実行しようとしています。これが私がこれまでに書いたものですが、翌日は機能しません。 fireup() { local starttime=$(date --date="23:00" +"%s") local endtime=$(date --date="06:30" +"%s") while :; do local currenttime=$(date +%s) if [ "$currenttime" -ge "$starttime" -a "$currenttime" -ge "$endtime" ]; then do_something else do_something_else fi test "$?" -gt 128 && break local currenttime=$(date +%s) done & } 私は何を間違っていますか?
9 scripting  date 

1
同じスクリプトでbashと期待しますか?
.csvファイルからIPアドレスを取得し、デバイスにtelnetして「show version」コマンドの出力をキャッチするスクリプトをコーディングしようとしています。 これまでのところ私はこれをコーディングしました: #!/bin/bash #!/usr/bin/expect -f FILE1=dispositivos.csv #file with IP's and device name set Username "user" #this is the user for telnet connection. set Password "this.is.the.pass" #pass for telnet connection. NUMERODISP="$(wc -l $FILE1 | awk '{print $1}')" #this command counts number of devices (IP's) in the file as it is …

4
オーディオデバイス/サウンドカードが現在再生されているかどうかをテストしていますか?
オーディオデバイスが無音かどうかを確認できるデフォルトのプログラムはありますか? 編集:沈黙とは、何かが再生されている場合(アクティブ化または開かれただけではない) このようなもの: if [[ device0 is silent ]] ; then radio $RANDOM fi 編集2:私が達成しようとしているのは、ラジオを再生し、プレーヤーに障害が発生しても再生を続けることができるスクリプトです。たとえば、インターネット接続がダウンし、プレーヤーが回復しなかった場合、プレーヤーを殺してやり直します

2
Sed:数字を置き換える
Ubuntuをインストールまたはアップグレードするときに使用するインストールスクリプトを記述しようとしています。修正に問題がありlogrotate.dます: /var/log/ufw.log { rotate 7 weekly missingok notifempty compress delaycompress sharedscripts postrotate reload rsyslog >/dev/null 2>&1 || true endscript } に変更rotate nnnしたいですrotate 99。nnnが任意の桁数(通常は1または2)であっても機能しますが、postrotate回線には影響しません。 私はこれら2つを試しましたが、必要なものはどちらも実行していません(nnnを1、2、または3桁でテストしました)。 sudo sed 's/rotate[0-9]*/rotate 99/' /etc/logrotate.d/ufw sudo sed 's/^rotate[0-9]/rotate 99/' /etc/logrotate.d/ufw


2
ansibleがCentOS7のsshdを変更するたびに、ランダムな将来のプレイが接続できない
これは今や十分な苛立たしい問題であり、私は最終的にコミュニティ全体に可能な解決策が何であるかを尋ねようと思いました。私だけがこの問題を経験しているように見えるのはさらにいらいらします。 基本的に、CentOS 7.x、sshd構成、またはsshdの一部でいつでも変更され、デーモンが次の3分間の「ランダムなポイント」で再起動/再ロードされ、ssh接続がすべてリセットされ、そのサーバーがssh経由で数秒間到達できません。 これは特に、sshdに対してこれらの変更自体を実行し、それを再ロードする必要がある(たとえば、新しいCentOS 7xサーバービルドで)ansibleの問題です。しかし、その後のプレイでは、ランダムにsshに接続できず、接続に失敗したそのホストの残りのプレイブックやプレイを爆破します。これは、いくつかがランダムに完了するため、大規模なホストパターンでは特に悪いですが、その他は、sshdが操作された後、プレイブックのさまざまな段階で失敗します。CentOS 5x、6x、またはSolarisでも、このようなことは発生しないことに注意してください。 これを回避するために私ができる最善の方法は、sshdに変更を加えた後に90秒の待機を作成することです。これでも完全に確実なわけではありません。7〜8回呼び出された場合でも、プレイブックの実行には20分以上かかります。 この環境に関するいくつかの事実は次のとおりです。 新しいインストールはすべて公式のISO DVDからのものです。すべてのサーバーはhyper-v 2012ゲストですこの問題のあるすべてのサーバーはCentOS 7.xです 問題と実際の解決策の実際の出力は次のとおりです。 間違い: fatal: [voltron]: UNREACHABLE! => {"changed": false, "msg": "All items completed", "results": [{"_ansible_item_result": true, "item": ["rsync", "iotop", "bind-utils", "sysstat.x86_64", "lsof"], "msg": "Failed to connect to the host via ssh: Shared connection to voltron closed.\r\n", "unreachable": true}]} sshdへの変更の1つの例: …

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