Linux

用 Linux 等效替換 VI 宏

  • May 24, 2019

我的文件到達 Linux 伺服器並包含^M在 VI 中看到的字元並且文件格式 = unix,(ff=unix)

我想將第 1-4 行變成第 9-10 行。 在此處輸入圖像描述

我的 vi 宏解決了我的問題。 /\r/\rxJ

它找到並刪除^M,然後將該行連接到上一行。

如何在 sed、awk 或某些 Unix 實用程序中完成此操作?

嘗試以下任何一種:

awk -vORS= '{print sub(/\r$/,"") ? $0" " : $0"\n"}' < infile > outfile

awk 'ORS = sub(/\r$/,"") ? " " : "\n"' < infile > outfile

perl -pe 's/\r\n/ /' < infile > outfile

或到位:

perl -pe 's/\r\n/ /' -i file

引用自:https://unix.stackexchange.com/questions/520889