使用命令行从文本列表创建文件?

时间:2013-05-03 16:37:31

标签: perl shell command-line command

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

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

4 个答案:

答案 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