最新記事

他のファイルのパターンと一致するファイルの複数行にある複数の部分文字列を置き換える方法は?
shell-script
awk
sed
python
perl

他のファイルのパターンと一致するファイルの複数行にある複数の部分文字列を置き換える方法は?

複数のIPアドレスとホスト名を含むファイルと、1行に複数のIPアドレスを持ついくつかのフォルダを含む他のファイルがあります。 IP_ホスト名.txt host1 10.1.1.1 host2 10.2.2.2 host3 10.3.3.3 host100 10.50.50.50 path_ips.txt /path1/foo/bar 10.1.1.1 10.2.2.2 10.3.3.3 /path2/foo/bar 10.3.3.3 10.7.7.7 /path3/foo/bar 10.4.4.4 10.8.8.8 10.29.29.29 10.75.75.75 /path100/foo/bar 10.60.60.60 IPアドレスを変更したいpath_ips.txtホスト名が出るファイルIP_ホスト名.txt各 IP アドレスに一致するファイルです。 希望の出力path_ips.txt /path1/foo/bar host1 host2 host3 /path2/foo/bar host3 host7 /path3/foo/bar host4 host8 host29 host75 /path100/foo/bar host60 私は入れ子になったsedを使ってこれを試しました。読みながらループは次のとおりです。 #!/bin/sh while read -r line do IP=$(echo $line| awk '{print $1}') HN=$(echo $line| awk '{print $2}') while read -r line2 do sed -i "s/$IP/$HN/g" path_ips.txt echo $line2 #to see the progress done < path_ips.txt done < ip_hostname.txt IPアドレスとホスト名のリストがそれほど大きくない場合は、最初はうまく機能しますが、より大きなリストを使用しようとするとうまく機能します。IP_ホスト名.txtファイルを開くと奇妙に動作し、結果が予想と異なります。言うまでもなく完了するのに長い時間がかかります。 これを行うより良い効率的な方法はありますか?

Admin

DebianにPyCharmを正常にインストールしましたが、実行されません。
debian
python

DebianにPyCharmを正常にインストールしましたが、実行されません。

PyCharmを正常にインストールしました。 sudo snap install pycharm-community --classic しかし、アプリケーションメニューには見つからず、端末でも実行できませんpycharm-community。 Setting up snapd (2.49-1) ... Created symlink /etc/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service → /lib/systemd/system/snapd.recovery-chooser-trigger.service. Created symlink /etc/systemd/system/multi-user.target.wants/snapd.seeded.service → /lib/systemd/system/snapd.seeded.service. Created symlink /etc/systemd/system/cloud-final.service.wants/snapd.seeded.service → /lib/systemd/system/snapd.seeded.service. Created symlink /etc/systemd/system/multi-user.target.wants/snapd.service → /lib/systemd/system/snapd.service. Created symlink /etc/systemd/system/sockets.target.wants/snapd.socket → /lib/systemd/system/snapd.socket. Processing triggers for gnome-menus (3.36.0-1) ... Processing triggers for man-db (2.9.4-2) ... Processing triggers for dbus (1.12.20-2) ... Processing triggers for mailcap (3.69) ... Processing triggers for desktop-file-utils (0.26-1) ... 2021-08-29T16:33:54+03:00 INFO Waiting for automatic snapd restart... core 16-2.51.4 from Canonical✓ installed $ sudo snap install pycharm-community --classic pycharm-community 2021.2.1 from jetbrains✓ installed

Admin

ソースからビルドされたPython 2.7はパッケージをインポートできません(Ubuntu 14.04)
ubuntu
package-management
python

ソースからビルドされたPython 2.7はパッケージをインポートできません(Ubuntu 14.04)

Python 2.7.6を実行するUbuntu 14.04 VMがあります。私が作業している作業には14.04とPython 2.7が必要です。 私はソースから2.7.18をダウンロードしてビルドすることにしました。次に、シンボリックリンクを/usr/bin/pythonすべて新しい2.7.18実行可能ファイル(/usr/local/lib/python2.7.18/bin/python。 問題は、この新しいPythonバージョンが多くのサイトパッケージを見つけることができないということです。たとえば、私はできませんimport apt_pkg。/usr/local/lib/python2.7/dist-packagesを含むを環境変数apt_pkg.soに追加してみましたが、まだインポートされません。頑張ったけど運がなかった。このパッケージは、新しいPythonバージョンをビルドする前にすでに存在します。PYTHONPATHpython -m sitesys.pathapt_pkgapt remove python-aptapt install python-apt 私は何をもっと試すべきかわかりません。私が知っている限り、システムPythonを変更するのは一般的ではありませんが、それが私が望んでいたことです。この新しいPythonバージョン用に更新する必要があるいくつかの設定があるようです。

Admin

Heredocに渡されたPythonスクリプトでパイプコンテンツを使用する
bash
shell
python
pipe
stdin

Heredocに渡されたPythonスクリプトでパイプコンテンツを使用する

私はここのドキュメントを知っています。標準入力に進みます。 here-docが標準入力へのパイプからのものよりも優先されることがわかります(下記参照)。 しかし、それを動作させる秘訣はありますか? おおむねスクリプトファイルの生成を避けたい。私は-cPythonにスイッチがあることを知っていますが、すべてを1行に入れたくありません。 echo values | python3 <