我有一台Mac,想要创建一个CSV并用双引号分隔每行5行,然后删除每行中的现有换行符。
例如,我想转换以下文字:
My
Name
is
Michael
I'm
25
Years
Old
以下文字:
"My Name is Michael"
"I'm 25 Years Old"
可以使用Numbers,TextEdit,任何在线工具,任何免费软件,SED命令或任何工具来完成吗?
由于
答案 0 :(得分:0)
这不会赢得任何高尔夫比赛,但是:
perl -0777 -pe 's/(.*)\n(.*)\n(.*)\n(.*)\n/"$1 $2 $3 $4"\n/g' input-file
肯定有一种更清洁的方法可以做到这一点,但这至少更为通用:
perl -wle 'while(!eof){ undef $a;
$a .= <> for(1..4); $a =~ s/\n/ /g;
chop $a; print "\"$a\""}' input
答案 1 :(得分:0)
使用awk
- 在第4行打印连接字符串s
。
awk 'BEGIN {n=0;s=""}
{
if (s=="") s=$0; # first field should not have leading space
else s=s " " $0;
if (!(++n % 4)) # after 4 lines print concatenated string
{
printf("\"%s\"\n" , s); s="";}
}' textfile
答案 2 :(得分:0)
这是一个简短的awk
awk 'NR%4==1 {printf "\""} {ORS=NR%4?" ":"\""RS} 1' file
"My Name is Michael"
"I'm 25 Years Old"