我知道通常你可以使用touch filename
通过命令行创建新文件。但是,在文本文件中,我有一个大约500个城市和州的列表,每个都在一个新行上。我需要使用命令行为每个城市/州创建一个新的文本文件。例如,Texas.txt,New York.txt,California.txt
包含该列表的文件的名称是newcities.txt - 这可以在命令行中执行还是通过Perl执行?
答案 0 :(得分:3)
您可以直接在shell中执行此操作,无需perl
cat myfile | while read f; do echo "Creating file $f"; touch "$f"; done
答案 1 :(得分:2)
perl -lnwe 'open my $fh,">", "$_.txt" or die "$_: $!";' cities.txt
使用-l
选项自动输入输入。 open
将创建一个新的空文件,当文件句柄超出范围时,文件句柄将自动关闭。
答案 2 :(得分:1)
这是perl
中的单行,假设每个城市都在新行
perl -ne 'chomp; `touch $_`;' newcities.txt
这是脚本版本:
#!/usr/bin/perl
use warnings;
use strict;
open my $fh, "<", "./newcities.txt"
or die "Cannot open file: $!";
while( my $line = <$fh> ){
chomp $line;
system("touch $line");
}
close $fh;
答案 3 :(得分:1)
如何简单:
cat fileName | xargs touch