最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別々に保存する必要があります。 Python の walk を使って実現することもできますが、少し複雑に感じます。そこで、Linux の組み込みコマンドでこのタスクを完了できるかどうかを確認したいと思います。 環境 検索対象となるディレクトリ構造は次のとおりです . |____test | |____test2.txt | |____test.py | |____test.txt | |____regex.py |____MongoDB | |____.gitignore | |____cnt_fail.py | |____db 目標1: すべてのpyファイル名を取得する find . -name '*.py'のみを使用して検索すると、結果はパスになります
ファイル名だけが必要な場合は、Linuxが提供するコマンドbasenameを使用できます。 basename を使用して find のすべての検索結果を処理するには、find のパラメータ -exec を使用する必要があります。 最後のコマンドは次のとおりです。 find . -name '*.py' -exec basename {} \; 結果:
{} は -exec オプションと組み合わせて使用され、すべての結果を照合してファイル名を抽出します。 目標 2: すべての py ファイル パスを取得し、重複を削除し、先頭の「./」文字を削除します。 Linuxにはファイルパスを取得するコマンドdirnameもあります 前のコマンドを少し変更して、すべてのファイルパスを表示します。 find . -name '*.py' -exec dirname {} \;
重複したパスがあることがわかります。Linux で重複を削除するには、sort を使用して -u パラメータを追加します。-u パラメータは、ソート結果の重複を削除するために使用されます。前のコマンドの出力を入力として sort に渡す必要があり、当然パイプが考えられます。 パイプ コマンド演算子は | であり、前のコマンドによって送信された正しい出力情報、つまり標準出力情報のみを処理できます。 ソートを追加した後のコマンドは
実行結果は次のとおりです。
最後に、cut を使用して各パスの前の ./ 文字を削除します。パラメータ -c3- は、文字列の 3 番目の文字 (開始位置は 1) から末尾までの部分文字列を抽出することを意味します。最後のコマンドは次のとおりです。 実行結果:
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
1. サーバーの購入1. 私はAlibaba Cloudのサーバーを選択しました。学生向けで月額9...
nginx プロセス モデルでは、トラフィック統計、トラフィック制御、データ共有などのタスクを完了す...
オープンプラットフォームの増加に伴い、そこから派生するさまざまなアプリケーションサービスも増加傾向に...
目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...
目次1. 環境2. 準備3. MySQL 8.0.11をインストールするMySQL 8 の公式バージ...
1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...
//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...
Vue プロジェクトを開発する場合、さまざまなコンポーネント ページを表示するために切り替えることが...
この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...
目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...
1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...
1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...
実際、Apacheクラスタを構築するのは難しくありません。私もインターネットで情報を見つけて自分で設...
パブリック関数 json_product_list($where, $order){ グローバル ...
リンクインスタイルとは、すべてのスタイルを 1 つ以上の外部スタイルシート ファイルに配置することで...