好的,所以我有一个包含以下信息的文本文件my.txt
user:pass
user:pass
user:pass
user:pass
我想打开文件抓取内容并操纵每一行然后将其输出到一个名为my2文件的文本中,看起来像这样
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
任何人都可以提供帮助
答案 0 :(得分:2)
使用一个小awk脚本:
awk -F: '{printf "http://mysever.com/2/tasks.php?account=%s%%3A%s\n", $1, $2}' < my.txt > my2
答案 1 :(得分:1)
非常基本的bash:
while IFS=":" read u p
do
echo "http://mysever.com/2/tasks.php?account=$u%3A$p"
done < my.txt > my2.txt
$ while IFS=":" read u p; do echo "http://mysever.com/2/tasks.php?account=$u%3A$p"; done < file > my2.txt
$ cat my2.txt
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
答案 2 :(得分:1)
使用sed
:您可以使用-i
选项进行简化替换或重定向到新文件
$ sed 's,\(.*\):\(.*\),http://mysever.com/2/tasks.php?account=\1%3A\2,' my.txt > my2.txt
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
使用awk
:
$ awk -F: '{print "http://mysever.com/2/tasks.php?account="$1"%3A"$2}' my.txt > my2.txt
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
http://mysever.com/2/tasks.php?account=user%3Apass
答案 3 :(得分:0)
Perl解决方案:
perl -ne 'chomp; ($user, $pass) = split /:/;
print "http://mysever.com/2/tasks.php?account=$user%3A$pass\n"' my.txt
答案 4 :(得分:0)
你想做什么并丢弃带有空字段的行(例如,空行):
while read l; do
[[ $l =~ .+:.+ ]] || continue
printf "http://mysever.com/2/tasks.php?account=%s\n" "${l/:/%3A}"
done < my.txt > my2.txt
警告。确保密码不包含任何有趣的符号。