入力された数値の最大と最小を除いた残りの値の平均を出す
#!/usr/local/bin/ruby values = [] sum = 0; while line = gets val = line.to_f sum += val values << val end sum -= values.max sum -= values.min sum /= (values.length - 2) puts sum
標準入力からの入力を一定の行数毎に出力する
#!/usr/bin/python import sys import getopt def main(): try: opts, args = getopt.getopt(sys.argv[1:], '', ["one"]) except getopt.GetoptError: sys.exit(2) idx = 0 sep = 1 for o, a in opts: if o == "--one": idx = 1 if(len(args) >= 1): sep = int(args[0]) for line in iter(sys.stdin.readline, ""): if(idx % sep == 0): print line, idx += 1 if __name__ == "__main__": main()
splitは指定した行数のまとまりを個別のファイルにだすものですが、こちらは1行目と3行目、5行目だけを出力とかするのに使えます。
以外とデータファイルとかで2行ペアでデータと補足情報が出力されてきていて、データの行だけ取りだしたい時などあります。UNIXでこんなコマンドがすでに存在するよ、という情報がありましたらよろしくおねがいします。