千家信息网

sed 处理文件中 dos CR/LF

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,将dos控制字符^M替换掉;# IN unix ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format)sed 's/^M$//' # in
千家信息网最后更新 2025年02月01日sed 处理文件中 dos CR/LF

dos控制字符^M替换掉;

# IN unix ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format)
sed 's/^M$//' # in bash/tcsh, press Ctrl-V then Ctrl-M
sed 's/.$//' # assumes that all lines end with CR/LF
sed 's/\x0D$//' # gsed 3.02.80, but top script is easier

# IN UNIX ENVIRONMENT: convert Unix newlines (LF) to DOS format
sed "s/$/`echo -e \\\r`/" # command line under ksh
sed 's/$'"/`echo \\\r`/" # command line under bash
sed "s/$/`echo \\\r`/" # command line under zsh
sed 's/$/\r/' # gsed 3.02.80

# IN DOS ENVIRONMENT: convert Unix newlines (LF) to DOS format
sed "s/$//" # method 1
sed -n p # method 2

# IN DOS ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
# Cannot be done with DOS versions of sed. Use "tr" instead.
tr -d \r outfile # GNU tr version 1.22 or higher


Example:
删除文件中的所有空行和由空格组成的行;
$cat ifile|sed '/^$/d'|sed '/^[[:space:]]*$/d' # method 1
$cat ifile|sed -e '/^$/d' -e '/^[[:space:]]*$/d' # method 2

0