最新記事

列 9-14 の文字が別のファイルに見つからない場合は、出力ファイルから行を除外します。
scripting
columns

列 9-14 の文字が別のファイルに見つからない場合は、出力ファイルから行を除外します。

2つの列で区切られたファイルがあり、両方のファイルにトランザクション識別子が見つかったレコードのみを含む2つの新しいファイルを作成する必要があります。識別子は列9から14までのフィールドにありますが、各ファイルの各レコードには9から14の範囲の前後に固有のデータがあり、可変データを出力ファイルに転送する必要があります。各識別子は一度だけ現れるか、まったく現れないように保証されます。 私はPythonスクリプトを使って直接書くことができますが、ライブラリ内の列で区切られたファイルの基本的なサポートはあまりありません。以前のコンピューティング時代に合わせて作成されたため、この問題は簡単に処理できます。もちろん、ツールが古すぎる場合は、Pythonスクリプトを直接作成します(列で区切られたファイルを処理するパッケージを知っている場合を除く)。 ご協力ありがとうございます。 例:列9〜14の文字を含む行が各ファイルにあるため、ID:525この行はその出力ファイルに書き込まれます。両方の入力ファイルには、他のファイルに見つからないレコードがあります。 入力ファイル1.txt Record1 ID:525 DATA A Record2 ID:232 DATA B Record3 ID:811 DATA C Record4 ID:400 DATA D 入力ファイル2.txt Record1 ID:448 DATA E Record2 ID:525 DATA F 出力ファイル1.txt Record1 ID:525 DATA A 出力ファイル2.txt Record2 ID:525 DATA F

Admin

このデータからn番目の「チャンク」を抽出できますか?
awk
sed
scripting

このデータからn番目の「チャンク」を抽出できますか?

stdout次のテキストブロックがたくさんあります。 % QUESTION Who played drums for The Beatles? % QUESTION Who played guitar for The Beatles? % QUESTION Who played bass for The Beatles ? ここでのアイデアは、ファイルが「チャンク」に分割され、各チャンクが1行で始まるということです% QUESTION。このデータのn番目のチャンクを印刷するスクリプトを作成したいと思います。 たとえば、配布はnthchunk 3印刷する必要があります。 Who played bass for The Beatles ? どうすればいいですか?

Admin

LAMP サーバーを簡単にインストールするには、スクリプトに整数式が必要です。
bash
scripting

LAMP サーバーを簡単にインストールするには、スクリプトに整数式が必要です。

私はLinuxに関しては初心者です。 先生は、さまざまなパッケージ(MYSQLのみ、PHP、またはすべてのパッケージなど)をインストールするオプションとともに、LAMPサーバーをインストールするスクリプトを生成するように指定しました。 合格後に修正されたコードは次のとおりです。https://shellcheck.net/、 #!/bin/bash function apache { sudo apt update sudo apt install apache2 #ja deaktivizē apache2 serveri un izmetas errors, kad mēģina to aktivizēt: #sudo echo "deb http://archive.ubuntu.com/ubuntu trusty main universe restricted multiverse" > /etc/apt/sources.list #sudo apt-get update #sudo apt-get purge apache2* #sudo apt-get install apache2 #sudo service apache2 start #sudo service apache2 status #Pārbaudīt vai viss strādā pareizi sudo ufw app list sudo ufw allow in "Apache" #Šis profils atver tikai 80. portu (parasta, nešifrēta tīmekļa trafika). sudo ufw enable #aktivizē ugunsmūri sudo ufw status #pārbauda vai 80 portam ir atļauts iziet caur ugunsmūri echo -e "Lai pārbaudītu vai viss sanāca, ieejiet jūsu pārlūkprogramma un ierakstiet šo http://jusu_servera_IP, Ip adresi var iegūt ar komandu hostname -I, tālāk ir dota jūsu IP adrese:" hostname -I #parādīs IP adresi(pirmā) echo "Ievadiet to konsolē, lai to varētu izmantot vēlāk" #write it in console to use it later read -r ip_address echo "Ievadi savu domēna vārdu" #input your domain name read -r domain sudo mkdir /var/www/"$domain" sudo chown -R "$USER":"$USER" /var/www/"$domain" cd /etc/apache2/sites-available/ echo " ServerName $domain ServerAlias www.$domain ServerAdmin webmaster@localhost DocumentRoot /var/www/$domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined " > "$domain".conf echo "Direktorija $domain un fails $domain.conf ir izveidoti" sudo a2ensite "$domain" sudo a2dissite 000-default sudo systemctl reload apache2 sudo apache2ctl configtest sudo systemctl reload apache2 cd /var/www/"$domain" echo " $domain majaslapa

Sveiki pasaule!

Si ir galvena lapa jusu majaslapai $domain.

" > index.html #xdg-open http://localhost #lietojot operu met brīdinājumus echo "Ierakstiet pārlūkprogramma http://localhost vai http://$ip_address" } function remove_apache { #sudo service apache2 stop sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common sudo apt-get autoremove --purge echo -e "Vai jūs gribat arī noņemt apache izveidotās direktorijas (ja/ne) ?" read -r manual while [[ "$manual" != "ja" && "$manual" != "ne" ]]; do #salidzina && = AND echo "Jums jaievada ja vai ne, lai turpinātu." read -r manual done if [ "$manual" = ja ]; then echo "Lai izdzēstu direktorijas, kuras jūs gribat izdzēst ar komandu sudo rm -Rf (piemēram, sudo rm -Rf /etc/apache2 /usr/lib/apache 2), tālāk būs dotas jūsu direktorijas:(ja tomēr nevēlaties izdzēst šīs direktorijas, ierakstiet jebko citu)" whereis apache2 read -r remove_direktorijas $remove_direktorijas elif [ "$manual" = ne ]; then echo -e "Apache2 ir atinstalēta." fi } function mysql { sudo apt install mysql-server echo -e "Tālāk varēs izvēlēties vai instalēt mysql drošību ar VALIDATE PASSWORD PLUGIN vai bez(spiežot jebkuru citu pogu izņemot y vai Y)" echo -e "Tālāk prasīs MYsql administrātora paroli vienalga vai jūs VALIDATE PASSWORD PLUGIN instalējāt vai nē. Un citas lietas, kas būs aprakstītas tālāk." sudo mysql_secure_installation echo -e "Lai izietu no MySQL konsoles rakstiet exit" sudo mysql } function remove_mysql { sudo apt-get remove --purge mysql* } #function php { #sudo apt install php libapache2-mod-php php-mysql | man ieķērās instalācija(loop) ja liku funkcijā šo #sudo systemctl restart apache2 #php -v #} function remove_php { sudo apt-get purge php7.* sudo apt-get autoclean sudo apt-get autoremove } function phpmyadmin { sudo apt update echo -e "Parādīsies uzvedne, izvelāties apache2(jānospiež taustiņš space un enter)" echo -e "Kad tiek vaicāts, vai datu bāzes iestatīšanai jāizmanto dbconfig-common, atlasiet Jā" sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl sudo phpenmod mbstring sudo systemctl restart apache2 #xdg-open http://localhost/phpmyadmin echo "Ierakstiet pārlūkprogramma http://localhost/phpmyadmin vai http://$ip_address/phpmyadmin" } function remove_phpmyadmin { sudo apt-get remove phpmyadmin sudo apt-get purge phpmyadmin sudo apt-get autoremove } while true do echo "1. Instalēt Apache" echo "2. Instalēt MySQL" echo "3. Instalēt PHP" echo "4. Instalēt phpMyAdmin" echo "5. Instalēt LAMP(Visu)" echo "6. Atinstalēt Apache" echo "7. Atnstalēt MySQL" echo "8. Atnstalēt PHP" echo "9. Atinstalēt phpMyAdmin" echo "10. Atinstalēt LAMP(Visu)" echo "0. Iziet" read -r INPUT if [ "$INPUT" -eq 1 ]; then apache elif [ "$INPUT" -eq 2 ]; then mysql elif [ "$INPUT" -eq 3 ]; then php elif [ "$INPUT" -eq 4 ]; then phpmyadmin elif [ "$INPUT" -eq 5 ]; then apache mysql sudo apt install php libapache2-mod-php php-mysql sudo systemctl restart apache2 php -v phpmyadmin elif [ "$INPUT" -eq 6 ]; then remove_apache elif [ "$INPUT" -eq 7 ]; then remove_mysql elif [ "$INPUT" -eq 8 ]; then remove_php elif [ "$INPUT" -eq 9 ]; then remove_phpmyadmin elif [ "$INPUT" -eq 10 ]; then remove_apache remove_mysql remove_php remove_phpmyadmin elif [ "$INPUT" -eq 0 ]; then exit fi done エラーは私のルートパーティションを埋めるsyslogファイルを生成しているので(shellcheck.netには記載されていません)、この問題を解決するにはどうすればよいですか? システムログメッセージ: https://i.stack.imgur.com/bjVzH.jpg これらのメッセージは、単にその行の行を記述するために必要な整数式です。 elif [ "$INPUT" -eq 5 ]; then AdminBeeが提案したように「読み取り」の後に挿入しecho "$INPUT" てスクリプトを実行した後、ターミナルでEnterキーを押すと、次の結果が表示されます。 ./lamp: line 161: [: : integer expression expected ./lamp: line 163: [: : integer expression expected ./lamp: line 165: [: : integer expression expected ./lamp: line 167: [: : integer expression expected ./lamp: line 169: [: : integer expression expected ./lamp: line 176: [: : integer expression expected ./lamp: line 178: [: : integer expression expected ./lamp: line 180: [: : integer expression expected ./lamp: line 182: [: : integer expression expected ./lamp: line 184: [: : integer expression expected ./lamp: line 189: [: : integer expression expected

Admin

sed:私のsedスクリプトに「s」の未知のオプションがあります。
bash
sed
scripting

sed:私のsedスクリプトに「s」の未知のオプションがあります。

閉鎖。質問は〜です。無関係。現時点では回答は許可されていません。 問題の説明再現できない問題自然に消えているように見える(またはスペルエラーが修正された後に消える)記事は、将来の読者には役に立たない可能性が高いため、トピックから抜け出した記事です。 閉鎖3年前。 この問題を改善する だからSED.sedというスクリプトがあります。このスクリプトは、車のデータデータセットを処理するために作成されました。まず、スクリプトに必要な機能を説明したいと思います。 3つのことをしたい 年を数十年に変えます。セットには1970年から89年までの自動車のみが含まれているため、年を適切な10年に置き換えました。はい(1972年と1974年は1970年代に置き換えられました) 自動車メーカーとモデルは二重引用符のペアで表示されます。私はこれを一重引用符に変え、ブランドとモデルを分離しました。したがって、「Honda civic lx」と「audi 500s(ディーゼル)」は「honda」「civic lx」と「audi」「500s(ディーゼル)」になります。 データ損失がある場合、一部のデータ行に「?」が含まれます。データセットからこの行を削除したいと思います。 つまり、私のスクリプトは次のようになります s/"([^" ]+) +([^"]+)"$/'"'\1' '\2'/" s/7[0-9]( )/70s/g s/8[0-9]( )/80s/g /?/d 次に、このスクリプトを次のようにsedコマンドに渡しました。 sed -E -i -f SED.sed auto-mpg.data これにより、次のエラーが発生します。 sed: file SED.sed line 1: unknown option to `s'

Admin

コマンドを入力すると、エスケープスペースを「ls」と一緒に使用することはできません。
bash
shell-script
scripting

コマンドを入力すると、エスケープスペースを「ls」と一緒に使用することはできません。

初めて行ってみるところですが、もし逃した部分があると申し訳ありません。 私は現在、すべてのフォルダを検索し、作業を実行する.vmdkファイルを検索するスクリプトを作成しています。ls -lah これは私の現在のスクリプトコードです。 #!/bin/bash parse_dir () { for file in ./**/*[A-Za-z][!-flat][!-thin].vmdk; do #echo "File Found: "${file//\ /\\\ } ls -lah "${file//\ /\\\ }" #vmkfstools -i "${file//\ /\\\ }" -d thin "${file%.vmdk}-thin.vmdk" #echo "New provisioned file: ${file%.vmdk}-thin.vmdk" done } parse_dir スクリプトは、一致するすべてのファイルを次のように出力します。 ls: ./ABC\ Collector/ABC\ Collector.vmdk: No such file or directory しかし!ls -lah ./ABC\ Collector/ABC\ Collector.vmdkこのファイルが存在することを手動で入力しても問題ありません。 ここで何か抜けましたか?

Admin

if-else 構文で Makefile 構文エラーが発生しました。
shell-script
scripting
make

if-else 構文で Makefile 構文エラーが発生しました。

こんにちは、私はこの問題に長い間悩んできました。私はこのメイクファイルが「ok」を出力すると期待しています。ただし、次を呼び出すと構文エラーが発生しますmake。 ifeq(0, 0) /bin/sh: 1: 構文エラー: 予期しない単語 (")" が必要) make: *** [既定値] エラー 2 パスワード: CHK = 0 default: ifeq ($(CHK), 0) echo "ok" else echo "not ok" endif

Admin

AからZまでディレクトリを作成し、その中のファイルを1から9まで作成するスクリプト[閉じる]
shell-script
shell
scripting

AからZまでディレクトリを作成し、その中のファイルを1から9まで作成するスクリプト[閉じる]

閉鎖。質問は〜です。無関係。現時点では回答は許可されていません。 この問題は複数のウェブサイトに公開。クロスポストはお勧めできません。サポートセンターそしてコミュニティFAQより多くの情報を知りたいです。 閉鎖4年前。 この問題を改善する 次のような場合、シェルのスクリプトがどのように見えるかを知っていますか?実行時にAからZまでzフォルダを作成する必要があります。各フォルダに0から9の空のファイルを作成する必要があります。 さらに、ファイルを含む別のディレクトリを作成する必要があります。各ディレクトリにいくつかのファイルがあるかどうかを計算します。 よろしくお願いします!

Admin