如何用Perl命令行给文本文件每行添加递增序号及指定前后缀
解决Perl命令生成命令行时的换行问题
你的问题出在print语句的字符串中包含了手动换行,导致输出时后缀部分被拆分到下一行。以下是修正后的两种实现方式:
方法1:修正print语句的换行符
直接将换行符用\n表示并放在字符串末尾,避免在shell中手动换行:
perl -ne 'chomp; print "gallery-dl -g $_ > link$..txt\n"' urls.txt
方法2:使用printf格式化输出(更严谨)
用printf可以更清晰地控制输出格式,避免字符串拼接的问题:
perl -ne 'chomp; printf "gallery-dl -g %s > link%d.txt\n", $_, $.' urls.txt
说明
chomp用于去除每行URL末尾的换行符,避免输出时出现多余空白。$.是Perl内置变量,代表当前处理的输入行号,刚好用来生成递增的linkN.txt序号。- 两种方法都会输出完整的单行命令,符合你需要的格式。
内容的提问来源于stack exchange,提问作者user1757774
相关产品推荐
相关产品推荐

