created: 2020-11-23T02:29:52.000Z
ファイル名をファイルの先頭に追加する(ディレクトリ配下全部)
1ファイルだけならいいが、何百とファイルがあると手作業でやるのはかなり辛い。 今回はブログ記事のファイル全部にフロントマターに1項目追加したかったので、1コマンドこさえた。
こんなコマンドでできる
$ ls -1 | xargs -I{} gsed -i -e '1i {}' {}
ls
ls -1
ファイル名を一覧するのに使う
xargs
xargs -I{}
- パイプされた1行に対して同じコマンドを発行する
- ファイル名のリストがパイプされているので、1ファイル1コマンド発行される
{}
はプレースホルダ{}
がパイプされた1行に置換されてコマンドが実行される
gsed
macOSでLinux版のsedを使いたかったのでgsed。
gsedはbrewでインストールできる。
-i
ファイルを直接書き換えるという指示。 引数に文字列を渡すとその名前のファイルを生成する。
1i
1i ~~
で「1行目に~~という文字列を入れる」という指示になる。
この改行も一緒に入る。