Windowsでメモ帳ファイルを作成し、Ubuntuにコピーしました。このファイルには、iptablesルールが含まれています。 chmod +x
を使用してファイルを実行可能にし、実行した後、機能しませんでした。
ただし、Ubuntu( gedit )ファイルを作成し、メモ帳ファイルから同じ内容をコピーし、実行可能にして実行すると、動作しました。
NotepadファイルをUbuntuで実行するにはどうすればよいですか?
WindowsとLinuxでは、行末記号が異なります。
修正するdos2unix
ユーティリティをインストールできます。
Sudo apt-get install dos2unix
この方法で実行します:
dos2unix -n winfile.txt linuxfile.txt
unix2dos
ユーティリティもあります。
WindowsからLinuxへの変換は、特別なソフトウェアをインストールせずに行うこともできます。
tr -d '\r' < winfile.txt > linuxfile.txt
注:入力ファイルと出力ファイルは異なる必要があります。
sedバージョンはファイルを「インプレース」編集します:
sed -i 's/\r//g' file.txt
または、別のファイルに書き込みます。
sed 's/\r//g' winfile.txt > linuxfile.txt
Windowsでは、Notepad ++の行末(EOL)形式をUNIXに変更する必要があります。
そうすれば、Ubuntuでも動作します。
Windowsは、改行にCR + LFを使用します。 Linux/Unixでは、LFが必要です。したがって、CR + LFをスクリプトのLFに置き換える必要があります。
インストールdos2unix
Sudo apt-get install dos2unix
スクリプトを修正するには
dos2unix <your_script_file>
または経由
dos2unix -n <your_script_file> <out_file>
別の出力ファイルが必要な場合
詳細情報 ここ
man dos2unix
から
NAME
dos2unix - DOS/Mac to Unix and vice versa text file format converter
SYNOPSIS
dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]
Windowsではcygwinを使用しています。
viでファイルを開きます。次に入力してください
:set ff=unix<enter> followed by
:wq<enter>
unixの行末文字でファイルを保存します。
ExモードでVimを使用できます。
ex -bsc '%s/\r//|x' file
%
すべての行を選択
s
代替
\r
キャリッジリターン
x
保存して閉じる