web-dev-qa-db-ja.com

Ubuntuでメモ帳(Windows)で作成されたスクリプトを実行する

Windowsでメモ帳ファイルを作成し、Ubuntuにコピーしました。このファイルには、iptablesルールが含まれています。 chmod +xを使用してファイルを実行可能にし、実行した後、機能しませんでした。

ただし、Ubuntu( gedit )ファイルを作成し、メモ帳ファイルから同じ内容をコピーし、実行可能にして実行すると、動作しました。

NotepadファイルをUbuntuで実行するにはどうすればよいですか?

14
Albert

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
20
Pilot6

Windowsでは、Notepad ++の行末(EOL)形式をUNIXに変更する必要があります。

enter image description here

そうすれば、Ubuntuでも動作します。

6
user284234

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 ...]
2
A.B.

Windowsではcygwinを使用しています。
viでファイルを開きます。次に入力してください

:set ff=unix<enter> followed by 
:wq<enter> 

unixの行末文字でファイルを保存します。

1

ExモードでVimを使用できます。

ex -bsc '%s/\r//|x' file
  1. %すべての行を選択

  2. s代替

  3. \rキャリッジリターン

  4. x保存して閉じる

0
Steven Penny