Bash:新しいファイルにファイルの内容を追加し、各ファイルの最後の行にコメントを追加します。

Bash:新しいファイルにファイルの内容を追加し、各ファイルの最後の行にコメントを追加します。

次のファイルがあり、すべて縮小されたJavaScriptコードが含まれています。各ファイルはコメントで終わります。

フォルダ構造

|--static
  |--js
    |--1.1001bbaf.chunk.js
    |--runtime~main.229c360f.js
    |--main.57f2973b.chunk.js

1.1001bbaf.chunk.js

(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=1.1001bbaf.chunk.js.map

ランタイム~main.229c360f.js

!function(e){function r(r){for .....
//# sourceMappingURL=runtime~main.229c360f.js.map

main.57f2973b.chunk.js

(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=main.57f2973b.chunk.js.map

私の要件は、すべてのファイルの内容を単一のファイルにフラッシュしてmain.js内容を上書きするのではなく追加することです。

次の解決策を試しました。

  1. cat static/js/*.js >> main.js

    これはうまく機能しますが、2番目のファイルの内容を最初のファイルの最後に追加してコメントで終わります。このような:

//#sourceMappingURL=1.1001bbaf.chunk.js.map(window.webpackJsonp=window.webpackJsonp||[]).push .....

今行全体はvimテキストエディタのコメントで、その行から始まるすべての内容はAtomテキストエディタのコメントです。

私のVimテキストエディタのデフォルトの動作は、oコマンドモードでキーを押し、最後の行がコメントの場合は//...新しい行が始まるということです//

コメント行で終わるファイルを処理する方法がわかりません。次のように考えることができます。新しい行から始まる次のファイルの内容を追加するか、最後のコメント行を削除します。

制限事項のみ使用できますbash

Vimコードスナップショット

アトムコードスナップショット

ベストアンサー1

ファイルの最後の行が改行文字で終わらないようです。そのため、あるファイルの最後の行が次のファイルの最初の行とマージされます。

各ファイルの後に改行を追加してみてください。

for file in static/js/*.js
do
    cat "$file"
    echo
done >> main.js

スクリプトは、ファイルが改行文字で終わるかどうかを確認しません。ファイルが改行文字で終わると、その後に空白行が続きます。

おすすめ記事