csvファイルから列(UPC番号)を抽出し、ファイルの長さが14未満の場合は末尾にスペースを追加してみてください。しかし、出力の末尾に^ Mがあるのに削除する方法がわかりません。
このコマンドは、この列以外の列でも機能します。
awk -F, '{print $8}' $FILE | awk '{printf("%-14s\n", $0) }' > $TEMP/upc
vi出力:
861601000109^M
736040531685^M
猫出力:
61601000109
36040531685
答え1
ファイルがWindowsのテキストエディタで開かれて保存されている可能性があります。
UNIX ベースのシステムの行終端は、Windows の行終端とは異なります。
DOS / Windowsコンピュータで生成されたテキストファイルは、Unix / Linuxで生成されたファイルと行末が異なります。 DOS は改行と改行 ("\r\n") を行終端として使用し、Unix では改行 ("\n") のみを使用します。行末が正しく翻訳されるようにするには、WindowsとUnixコンピュータ間でファイルを転送するときに注意が必要です。
ファイルを読み取るときはcat
EOL文字は表示されませんが、ファイル読み取りを使用するとvi
EOL文字が表示されます。
^M
おそらくファイルから削除する最も簡単な方法は、ストリームエディタを使用して文字をsed
削除することです。^M
次のコマンドを入力してください。% sed -e "s/^M//" filename > newfilename
と入力するには、を入力して^M
からCTRL-V
を入力しますCTRL-M
。つまり、CTRL キーを押しながら V と M を押し続けます。