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で質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
- その他(プログラミング・Web制作) awkの BEGIN{RS=""} で空行を削除できるが、削除できる仕組みが分からない。 1 2023/05/02 14:14
- Perl PERL 1 2022/04/26 14:15
- Perl perlプログラミング 空白行削除 4 2023/01/28 17:58
- Perl #!/usr/bin/perlで書きだしたCGIをサーバーにアップしていますが反応しません 4 2023/08/22 23:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Strawberry Perl for Windows ...
-
アルファベットに付いて質問し...
-
Perlで同じフォルダにある任意...
-
perlでリテラル値はメモリにど...
-
ペプシコーラとコカ・コーラとD...
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
perlについての質問
-
Blenderについて
-
Perl の外部モジュールの利用方法
-
perl このテキストファイルを簡...
-
Perlでファイルの末尾から指定...
-
秀丸での一括変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
perlをバージョンアップしたら...
-
INDIRECT 横に再度抽出したい
-
Perl の外部モジュールの利用方法
-
Perlで特定文字列から特定文字...
-
Perlのエラーについてご教授く...
-
bashスクリプト
-
Strawberry Perl for Windows ...
-
perlで2次元配列をサブルーチ...
-
TeraPadエディターの操作方法に...
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
perlでリテラル値はメモリにど...
-
画像が表示でnull; this.src
おすすめ情報