我知道通常你可以touch filename
通过命令行来创建新文件。但是,在文本文件中,我有一个大约 500 个城市和州的列表,每个都在一个新行上。我需要使用命令行为每个城市/州创建一个新的文本文件。例如,Texas.txt、New York.txt、California.txt
包含列表的文件的名称是 newcities.txt - 这可以在命令行中还是通过 Perl 来完成?
我知道通常你可以touch filename
通过命令行来创建新文件。但是,在文本文件中,我有一个大约 500 个城市和州的列表,每个都在一个新行上。我需要使用命令行为每个城市/州创建一个新的文本文件。例如,Texas.txt、New York.txt、California.txt
包含列表的文件的名称是 newcities.txt - 这可以在命令行中还是通过 Perl 来完成?
您可以直接在 shell 中执行此操作,无需 perl
cat myfile | while read f; do echo "Creating file $f"; touch "$f"; done
perl -lnwe 'open my $fh,">", "$_.txt" or die "$_: $!";' cities.txt
使用-l
选项自动选择输入。将open
创建一个新的空文件,并且文件句柄将在超出范围时自动关闭。
这是一个单线 in 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;
一个简单的怎么样:
cat fileName | xargs touch