改行やEOFなしでLinuxテキストファイルを変更するには?

改行やEOFなしでLinuxテキストファイルを変更するには?

書式設定された結果を既存のテキストファイルに印刷するには、「find」execコマンドを作成する必要があります。いくつかの奇妙な場合は、新しい行の代わりに前の行の最後の行(LFの後にCRがありませんか?)に行を追加します。これが起こらないようにするにはどうすればよいですか?追加する前にテキストファイルを変更するコマンドはありますか? DOS 2 Unix?

答え1

使用:

awk 1 file1 file2 ... > outfile

唯一のcat file1 file2 ... > outfile 問題は、それとは異なり、それらのいずれかが開いてcat読み取れない場合は、ファイルの残りの部分を続行するのではなく、エラーですぐに終了することです。awkこれが問題の場合、ほとんどの最新システムでは、次の方法を使用して既に提案されているとおりに実行できます。file1file2grep ''ここ+-hファイル名を省略するオプション(ただし、これは悪用される非標準機能であることに注意してくださいgrep):

grep -h '' file1 file2 ... > outfile

答え2

1つの興味深いhackことは、awkを使用してbashコマンドをフォーマットし、次のようにbashにプッシュできることです。

awk '{ print "find " $1 " -exec ls {} \;" }' ./source_file | bash

これにより、コマンドをすぐに実行できます。たとえば、次のようになります。

find /var -exec ls {} \;
find /home/user1 -exec ls {} \;
# and so on depending on the contents of the ./source_file

役に立ったことを願っています:)

関連情報