ファイルの最後の行に各テキストファイルの名前を追加します。

ファイルの最後の行に各テキストファイルの名前を追加します。

firstFile.txt、...、tenthFile.txtという10個のファイルがあります。

ファイルの最後の行にファイル名を追加したいと思います。

つまり、最初の行の場合、最後の行は "firstFile"になります。

コード一行でこれを行いたいです。

ベストアンサー1

を使用して、zsh拡張子(root名)からファイル名を削除した行を非表示の各ファイルの末尾に追加します。定期的なファイル(ディレクトリ、シンボリックリンク、パイプ、デバイスなどではありません):

for f (*(N.)) print -r - $f:r >> $f

sh/使用bash(使用可能zsh):

for f in *; do
  [ -f "$f" ] && [ ! -L "$f" ] && printf '%s\n' "${f%.*}" >> "$f"
done

このループの終了状態は、このループで実行される最後のリストおよび/またはリストの終了状態になります。

スクリプトがファイルを更新できない場合にのみ終了ステータスを失敗させるには、次のようにします。

#! /bin/zsh -
ret=0
for f (*(N.)) print -r - $f:r >> $f || ret=$?
exit $ret

または:

#! /bin/sh -
ret=0
for f in *; do
  [ -f "$f" ] || continue
  [ -L "$f" ] && continue
  printf '%s\n' "${f%.*}" >> "$f" || ret="$?"
done
exit "$ret"

おすすめ記事