0

我知道通常你可以touch filename通过命令行来创建新文件。但是,在文本文件中,我有一个大约 500 个城市和州的列表,每个都在一个新行上。我需要使用命令行为每个城市/州创建一个新的文本文件。例如,Texas.txt、New York.txt、California.txt

包含列表的文件的名称是 newcities.txt - 这可以在命令行中还是通过 Perl 来完成?

4

4 回答 4

3

您可以直接在 shell 中执行此操作,无需 perl

cat myfile | while read f; do echo "Creating file $f"; touch "$f"; done
于 2013-05-03T16:41:09.970 回答
2
perl -lnwe 'open my $fh,">", "$_.txt" or die "$_: $!";' cities.txt

使用-l选项自动选择输入。将open创建一个新的空文件,并且文件句柄将在超出范围时自动关闭。

于 2013-05-03T16:48:26.267 回答
1

这是一个单线 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;
于 2013-05-03T16:41:35.757 回答
1

一个简单的怎么样:

cat fileName | xargs touch
于 2013-05-03T16:43:04.623 回答