![Bash はファイルのリストを読み取り、ファイルの内容を 1 つのファイルに出力します。](https://rvso.com/image/164731/Bash%20%E3%81%AF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%201%20%E3%81%A4%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
コマンドを使用して、find
特定の拡張子を持つすべてのプログラム ファイルを検索し、その内容を大きな「codebase.txt」に追加すると、問題なく動作します。問題は、同じプログラムのバージョンが非常に多いことです (各プログラムの一意のコピーは 1 つだけ必要です)。find コマンドからリストを解析し、同じプログラムの .v1、.v2、.v3 などを削除して、1,000 個以上あったリストを 300 個 (ほとんど一意のファイル名) にまとめました。ファイル リストを読み取り、「sourcecode.txt」に出力するさまざまな cat コマンドを使用すると、次のようなエラーが発生します。スイッチ"invalid use of 'r'"
も使用していません。r
Redhat Enterprise Server 7 の bash ではこれが簡単だとわかっていますが、試したことはすべて失敗しました。
これは私が探していたものだと思うのですが、入力が認識されないというエラーが返されます。
#!/bin/bash
input="filelist.txt"
while IFS= read -r line
do
echo "$line". #append to codebase.txt???? - but how????
done < "$input"