
No.1ベストアンサー
- 回答日時:
コマンドラインオプション -a (と-F)を使います。
perldoc perlrun
すると細かい説明がわかります。
-a
turns on autosplit mode when used with a -n or -p. An implicit
split command to the @F array is done as the first thing inside the
implicit while loop produced by the -n or -p.
perl -ane 'print pop(@F), "\n";'
is equivalent to
while (<>) {
@F = split(' ');
print pop(@F), "\n";
}
An alternate delimiter may be specified using -F.
@F という配列に入力行を分割して格納します。
awk でいうところの print $1, $2 は
print $F[0], $F[1], "\n";
になります。
配列が0オリジンになることに注意してください。
awkでの$0は、この場合は $_ という変数に入っている値になります。
No.2
- 回答日時:
「コマンドラインで」という限定になると結構面倒な事になります。
例えば、
echo "aaa,bbb,ccc" | awk -F"," '{ printf( "%s:%s\n", $1, $2 )}'
をperlのコマンドラインで”同じ意味合い”で再現しようとすると
perl -e "@a = split(\",\",\"aaa,bbb,ccc\");print \$a[0] . \":\" . \$a[1] . \"\\n\";"
という感じになりますw
#同じ意味合い・・","で分けた1つ目と2つ目を":"でつなげて出力
$1,$2を使う形だとこんな感じです。
perl -e "\$buff = \"aaa,bbb,ccc\";\$buff =~ s/^(.*?),(.*?),(.*?)\$/\$1:\$2/;print \"\$buff\n\";"
#正規表現を使った形です。
perlはあくまでもプログラム言語なので、実装の制限(例えば、返り値を変数に入れてからしか使えないとか)や
機能が汎用的であるが故に、利用するには手続きがいるなど
コマンドラインで実行しようとするとどうしても機能特化した
UNIXコマンドには負けてしまいがちです。
ただし、awkコマンド自体はプログラムですから
当然perlでも同様のプログラムを作る事ができます。
##########################
パンは、小麦粉から作られている。
当然小麦粉よりもパンの方がおいしい。
でも、パンからうどんは作れないけど
小麦粉からうどんは作れる。
要するに、パン(awk)という特化したものはそれ単体で見ると
優れていて、汎用的な小麦粉は勝てないが
パンからうどんという特化したものを作る事はできない。
しかし、小麦粉はうどんを作る事ができる(謎)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Perlでファイルの末尾から指定...
-
テキストファイルで提出とは?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授く...
-
perlをバージョンアップしたら...
-
Perlで時間の計算
-
Wallpaper Engineでおすすめの...
-
Perl言語について。
-
perlで2次元配列をサブルーチ...
-
Strawberry Perl for Windows ...
-
#!/usr/bin/perlで書きだしたCG...
-
perl の open について教えてく...
-
INDIRECT 横に再度抽出したい
-
アルファベットに付いて質問し...
-
openした後、closeしないでプロ...
-
画像が表示でnull; this.src
-
VBA変数をFunction.VLookupの戻...
-
perlのflock関数でロックをかけ...
-
Perl の外部モジュールの利用方法
-
TeraPadエディターの操作方法に...
-
bashスクリプト
-
perlの構文でカンマの意味が分...
おすすめ情報