Macターミナルを使用してファイル名を含むテキストファイルに行を挿入する

Macターミナルを使用してファイル名を含むテキストファイルに行を挿入する

私は Mac でターミナルを使用しており、次のようなデータを含む一連のテキスト ファイルがあります。

300.50 253.50
301.00 156.26
301.50 191.57

最初の列に「Wavelength」というラベルが付けられ、2 番目の列にファイル名のラベルが付けられている列にヘッダーを挿入します。次のようになります (スペースで区切られている限り、スペースは関係ありません)。

Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57

各ファイルに「Wavelength」を挿入するループがあり、うまく動作しますが、ファイル名を追加すると問題が発生します。コードは次のとおりです。

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength" . wq)   
done

変更されたセクションを太字にして、次の行を試しました。

  • -ed -s $file < <(printf '%s\n' 1i "波長"&& $ファイル. wq)
  • -ed -s $file < <(printf '%s\n' 1i "波長"&& printf $ファイル. wq)
  • -ed -s $file < <(printf '%s\n' 1i "波長"&& $fileをエコー. wq)

どうすればいいでしょうか? ファイル名を変数として保存し、その変数を印刷する必要がありますか? または、修飾子を使用してファイル名を文字列に変換できますか?

何か思いついたら教えてください。よろしくお願いします

答え1

次のことについてはどうでしょうか:

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength $file" . wq)
done

ところで、「. wq」と「1i」は何をするものですか? 今まで見たことがありません...

関連情報