好的,我有很多具有这种结构的文件:
mail1@mail.it
mail2@mail.com
mail3@mail.co.uk
现在我正在尝试转换这些文件,以获得此结果
mail1@mail.it;mail1@mail.it
mail2@mail.com;mail2@mail.com
mail3@mail.co.uk;mail3@mail.co.uk
这是因为我要导入这个文件来创建一个邮件列表,所以在每一行我需要以windows风格返回。
我试着用sed这个但是我不知道,而且我现在没有发现这么多
我试过这种方法:
sed 's/^/;/' input.txt > output.txt
但我想念如何“克隆”每一行的内容,这个想法很简单 我读了这行,然后用一个粘贴它;最后,结果一定是对的。
如何复制每行的内容?
Ĵ
答案 0 :(得分:2)
{"error":{"message":"(#100) Invalid file. Expected file of one of the following types:
application\/octet-stream","type":"OAuthException","code":100}}
输出:
mail1@mail.it;mail1@mail.it mail2@mail.com;mail2@mail.com mail3@mail.co.uk;mail3@mail.co.uk
答案 1 :(得分:1)
最好为此使用paste
:
paste -d';' file file
mail1@mail.it;mail1@mail.it
mail2@mail.com;mail2@mail.com
mail3@mail.co.uk;mail3@mail.co.uk
您也可以使用sed
(也可以使用CRLF行结尾):
sed -i.bak $'s/\([^\r]*\).*/\\1;\\1/' file
mail1@mail.it;mail1@mail.it
mail2@mail.com;mail2@mail.com
mail3@mail.co.uk;mail3@mail.co.uk
答案 2 :(得分:1)
paste -d';' file file
输出:
mail1@mail.it;mail1@mail.it
mail2@mail.com;mail2@mail.com
mail3@mail.co.uk;mail3@mail.co.uk
答案 3 :(得分:0)
如其他人所示,awk,sed或paste是最好的方法,但是..让我们再做一些!
bash循环:
cat file | while read line ; do echo "$line;$line"; done
perl的:
perl -pe 's/(.*)/$1;$1/' file
红宝石:
ruby -ne 'puts $_.chomp + ";" + $_' < file
蟒:
python -c "import sys;[sys.stdout.write(line.rstrip() + ';' + line) for line in sys.stdin]" < file
现在我已经没了什么了
答案 4 :(得分:0)
使用
sed 's/.*/&;&/' input.txt > output.txt
.*
匹配整行&
是所有模式内容