0

touch filename通常、コマンドラインから新しいファイルを作成するために使用できることを知っています。しかし、テキスト ファイルには、約 500 の都市と州のリストがあり、それぞれが新しい行になっています。コマンドラインを使用して、都市/州ごとに新しいテキスト ファイルを作成する必要があります。たとえば、Texas.txt、New York.txt、California.txt などです。

リストを含むファイルの名前は newcities.txt です - これはコマンド ラインまたは Perl で実行できますか?

4

4 に答える 4

3

これはシェルで直接行うことができ、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

簡単な方法はどうですか:

cat fileName | xargs touch
于 2013-05-03T16:43:04.623 に答える
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;
于 2013-05-03T16:41:35.757 に答える