|
始めまして、UNIX使い始めです。 この度、awkコマンドを使用してファイルを分別して削除するシェルを作成しているのです。 そこでお聞きしたい事がるのです。 awkコマンドのifなどの中で変数は使えないのでしょうか? 現在、全ファイルに作成日付が付加されており、 指定日より前の物を削除したいいのです。 シェルの前半で指定日付を変数へ代入し、 lsとawkをパイプで繋いで削除しようとしています。 awk内のifなどによる条件判断で変数を宣言すると$0のメンバー名全体が表示されており、判別できないのです。 (ifを削除しprintで変数を表示させて確認) 出来ないのであれば何か別の方法を考えなくてはいけないのですが、 何方かお答えください。 |
|
>>3628 Tangerine 具体的にどのようなスクリプトなのか見せて頂けませんか? (そもそもawkを使う必要があるのでしょうか?) |
|
返信遅れてすいません。 えっと、確かに自分もawkを使う必要があるのか微妙ですが、 #! /usr/bin/sh make_date=`date +"%Y%m%d"` make_date=`echo $make_date"-1" | bc` echo $make_date ls *.*.* | awk -F. '{if($2<make_date) print $0}' 問題としているのはこのあたりです。 変数make_dateに昨日の日付けが入り、 それ以前のものを表示させたいのです。 正直なところを言えば、awkを使う必要性はまったくといってないです。 ただ、自分が色々調べた結果awkを使ってやれば出来るのか? と、考えて使ってみただけですので。 awkじゃなくて別の方法で行えるのであれば、 御教授いただけると嬉しいです。 |