1

bashコマンドを使用して、複数の構成ファイルに複数の行を追加しました。

> for filename in *.ovpn; do
> printf 'configurationscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf' >> $filename; 
> done

ただし、制御文字「^ M」は、構成ファイルの各行の終わりに表示されます。 ここに画像の説明を入力してください

私はvimでファイルを開きました。bashコマンドの前のファイルは次のように見えました。 ここに画像の説明を入力してください

各行の最後に「^M」が表示されるのはなぜですか。ありがとう。

4

2 に答える 2

3

Windows のキャリッジ リターンdos2unixです。ファイルの変換に使用します。Vim はファイル形式を認識し、正しく表示します。

于 2012-11-15T13:21:35.643 に答える
3

が利用できない場合は、^Mの正規表現を使用して削除することもできます。vimdos2unix

:%s/^M//g、次のように入力できます。 Esc:%s/ctrl+Vctrl+M//g

Linux システムで単純な printf コマンドを使用しただけで、なぜこれが発生したのかわかりません。正しいバージョンの printf を選択していることを確認してください。私はこれを Linux システムで試してみましたが、ご想像のとおり、ローカルの printf は正しい行末を保持しています。

于 2012-11-15T13:30:09.253 に答える