質問
(1) Windows システムでは、ファイルの各行は '<キャリッジ リターン><ライン フィード>'、'\r\n' で終わります。
(2) Mac システムでは、ファイルの各行は '<キャリッジ リターン>'、つまり '\r' で終わります。
(3) Unix システムでは、ファイルの各行は '<newline>'、つまり '\n' で終わります。
したがって、ファイル内の改行文字として「\n」を使用すると、Windows メモ帳で開いたときに改行は表示されません。
改行文字として「\r\n」を使用するファイル (Windows ファイル) を Linux または Mac の vim で開くと、\r は ^M と表示されます。
echo "a,b,c,d"
Mac または Linux システムでは、上記の結果はすべて
a,b,c,d
ここで、sed を使用して「,」を改行に置き換え、Linux システムで実行すると
echo "a,b,c,d" |sed 's/,/\n/g'
、
結果は次のようになります。
Mac で同じコマンドを実行した結果は次のようになります。
解決する
gsed をインストールすることで解決します。
brew install gnu-sed
次に、gsed を使用します。
bash_profile にエイリアスを追加し、sed を gsed に置き換えます。
関連するその他の質問については、[1]を参照してください。
試してみる
sed -i 's#古いパス#新しいパス#g' ターゲット ファイル アドレス
仮想マシンから大規模なファクトリ サーバー上のコンテナに移行するプロセスでは、構成ファイル内のログ ファイルと IP ライブラリ ファイルの場所を書き換える必要があります。
たとえば、元のファイルの log_path を次から/home/google/log/service/qa/
変更する必要があります。/home/appops/logs/service/qa/
埋め込むsed -i 's#/home/google/log#/home/microsoft/logs#g' config.yml
(通常は Makefile に追加されます)
別の例として、次のことが必要です。
city1: /中国/浙江/杭州/余杭/仓前.db
city2: /中国/浙江/杭州/余杭/闲林.txt
city3: /中国/浙江/杭州/余杭/中泰.md
への変更
city1: /中国/余杭/仓前.db
city2: /中国/余杭/闲林.txt
city3: /中国/余杭/中泰.md
実行可能sed -i 's#/中国/浙江/杭州#/中国#g' config.yml
別の例として、次のことが必要です。
city1: /中国/浙江/杭州/余杭/街道/仓前.db
city2: /中国/江苏/苏州/虎丘/街道/横塘.txt
city3: /中国/山东/滨州/邹平/街道/黛溪.md
への変更
city1: /中国/华东/街道/仓前.db
city2: /中国/华东/街道/横塘.txt
city3: /中国/华东/街道/黛溪.md
もちろん
sed -i 's#/中国/浙江/杭州/余杭/仓前.db#/中国/华东/余杭/仓前.db#g' config.yml
sed -i 's#/中国/江苏/苏州/虎丘/横塘.txt#/中国/华东/虎丘/横塘.txt#g' config.yml
sed -i 's#/中国/山东/滨州/邹平/黛溪.md#/中国/华东/邹平/黛溪.md#g' config.yml
ただし、より良い方法はワイルドカードを使用することです
sed -i 's#/中国/.*街道#/中国/华东/街道#g' config.yml
で
-
.
任意の 1 文字を表します -
*
文字が 0 回以上出現することを示します
「s#/中国/.*街#/中国/东华/街#g」は、「China/xxxxxx 任意の文字数 xxxxx street」を「China/East China/street」に置き換えることを意味します。
詳細については、coolshell-SED の簡潔なチュートリアル[2]を参照してください。
参考文献
関連するその他の質問については、https://www.google.com/search?newwindow= 1&rlz=1C5CHFA_enCN758CN758&sxsrf=ACYBGNRgj_G2k3S1PNhmPd8Zzs-Jfyor2g%3A1574328575244&ei=_1jWXeHFDvTXz7sPn_KXWA&q=s を参照してください。 ed%E 5%91%BD%E4%BB%A4+ mac+% E5%8C%BA%E5%88%AB&oq=sed%E5%91%BD%E4%BB%A4+mac+%E5%8C%BA%E5%88%AB&gs_l=psy-ab.3... 295935.300081. .300238...4.2..0.311.2569.0j2j7j1...0....1..gws-wiz....0i71j0i12j0i8i30j33i160.jDax8rOLIAk&ved=0ahUKEwihwfL7_vrlAhX063MBHR_5BQs Q4dUDCAs&uact=5
[2]Coolshell-SED の簡単なチュートリアル: https://coolshell.cn/articles/9104.html
この記事はmdniceマルチプラットフォームによって公開されています