我的输入如下:
final <- df %>%
group_by(group) %>%
nest() %>%
mutate(data=map(data,~c(apply(.x,1,c)))) %>%
mutate(data=map(data,~graph(.x,directed=F))) %>%
我想制作
Line 1\n
More Line 1\r\n
Line 2\n
More Line 2\r\n
使用sed或tr。我尝试过以下操作但不起作用:
Line 1 More Line 1\r\n
Line 2 More Line 2\r\n
out_file仍然看起来像in_file。我也可以选择编写python脚本。
答案 0 :(得分:2)
尝试:
sed '/[^\r]$/{N; s/\n/ /}' in_file
/[^\r]$/
这仅选择不的行在换行符之前具有回车符。大括号后面的命令仅对与此正则表达式匹配的行执行。
N
对于那些选定的行,这会为其添加换行符,然后读入下一行并附加它。
s/\n/ /
这会用空格替换不需要的换行符。
当sed一次读取一行时,但它不会在行后面的换行符中读取。因此,在下文中,\n
永远不会匹配:
sed -e 's/([^\r])\n/ /g'
我们可以匹配[^\r]$
,其中$
表示行尾但仍然不包含\n
。
这就是上面使用N
命令读取下一行的原因,在追加换行符后将其附加到模式空间。这使得换行符对我们可见,我们可以将其删除。
答案 1 :(得分:1)
试试这个:
tr '\n' ' ' < file | sed 's/\r/\r\n/g'
它将打印:
Line 1 More Line 1\r\n
Line 2 More Line 2\r\n
答案 2 :(得分:0)
awk 解决方案:
Line 1 More Line 1\r\n
Line 2 More Line 2\r\n
输出(字面意思):
brew install pygobject3