AWKを使用して、テキストファイル内のすべての単語を改行します。私は実際にAWKの使い方を知らないが、私の問題を解決するはずのオンラインコマンドをいくつか見つけた。これらのコマンドの両方が、すべてのスペースが削除されていることである同じ効果を持っている、しかしAWKを使用して各単語をテキストファイルに新規行に配置
$ awk '{ for (i = 1; i <= NF; i++) print $i }' input.txt > output.txt
と
$ awk '{c=split($0, s); for(n=1; n<=c; ++n) print s[n] }' input.txt > output.txt
:私は、次のコマンドを試してみました。
The fox jumped over the dog
output.txtとが含まれている必要があります:
The
fox
jumped
over
the
dog
しかしoutput.txtとが含まれています
Thefoxjumpedoverthedog
明確にするために
は、そのINPUT.TXTがテキストを含んでいると言うことができます私はこれらのコマンドを使用するWindows 7でCygwinを使用しています。私はコマンドの中に欠けているものがありますか?ファイルからawk ... inputfile
を読むため
標準awkのプラットフォームでは再現できないのです。あなたのAwkがUnixの行末を出力し、あなたがファイルを調べるために使用しているツールがそれらと何をするべきか分からないことがありますか? Awkのスクリプトは問題ありません。プラットフォーム上で正しく動作させる方法はここにありますが、それはプログラミング上の問題ではありません。 – tripleee
@ tripleeeありがとう、私はそれがWin/Unixシステム間の互換性と関係があると思った。 – hjalpmig
ああ、WindowsとUnixとの互換性がある。 'cat -vet file'を試してみてください。行末に '^ M $'がある場合は、 'dos2unix file'を使ってunix形式に変換してください。 (あるいは、私があなたのデータの "方向"を誤解すれば、 'unix2dos file'もあります。 – shellter