問題:
cat -e file.txt
給出:
{"yellow":"mango"}^M$
^M$
{"yellow":"banana"}^M$
^M$
{"yellow":"blabla"}^M$
^M$
我只想:
{""yellow":"mango"}^M$
{"yellow":"banana"}^M$
{"yellow":"blabla"}^M$
我嘗試了:
find . -type f -name "*.txt" -print0 | xargs -0 sed -i "s/^M$^M$/^M$/g"
head -n 3 file.txt | od -bc
0000000 173 042 171 145 154 154 157 167 042 072 042 155 141 156 147 157
{ " y e l l o w " : " m a n g o
0000020 042 175 015 012 015 012 173 042 142 141 142 141 142 042 072 042
" } r n r n { " b a b a b " : "
0000040 155 141 156 147 157 042 175 015 012
m a n g o " } r n
0000051
awk 1 RS='rn' ORS= < file.txt
答案1:
你可以使用sed -z's/rnrn/rn/g'
通常sed
一次只能在一行上工作,通過使用-z
選項,0
位元組分隔,因此整個文件被視為一行,可以替換新行。
答案2:
你還可以刪除僅包含回車符的行:
sed'/^r$/d'file
例如:
$ cat -e file
AB^M$
^M$
CB^M$
^M$
$ sed '/^r$/d' file|cat -e
AB^M$
CB^M$
相关文章