我需要在执行替换之前编辑sed选择...种类的嵌套查询
以下是file.csv的前两行
"some text over one line"||02/21/2015 00:00:00||54.34||0.234
"some text over
multiple
lines"||02/21/2015 00:00:00||64.24||0.432
我想从第一列中删除换行符 - 第一个分隔符||
之前的所有内容
此命令收集每一列并允许我单独引用它们
sudo sed -i 's/\(.*\)||\(.*\)||\(.*\)||\(.*\)/\1||\2||\3||\4/g' file.csv
我现在需要在替换之前编辑\1
。与另一个sed命令sed -i ':a;N;$!ba;s/\n//g' file.csv
一致的东西 - 但仅适用于\1
而不是整个文件
输出应该如下所示
"some text over one line"||02/21/2015 00:00:00||54.34||0.234
"some text over multiple lines"||02/21/2015 00:00:00||64.24||0.432
答案 0 :(得分:0)
sed可以做到,但你必须玩保持空间。 awk有printf
,您可以更轻松地控制输出格式:
awk '{printf "%s%s",(/^"/&&NR>1)?RS:"",$0}' file
将适用于给定的示例。
P.S。如果您正在寻找仅限sed的解决方案,请发表评论,我将删除答案。