io.go
func Cat(filenames ...string) Filter {
	return FilterFunc(func(arg Arg) error {
		if len(filenames) == 0 {
			for s := range arg.In {
				arg.Out <- s
			}
			return nil
		}
		for _, f := range filenames {
			file, err := os.Open(f)
			if err == nil {
				err = splitIntoLines(file, arg)
				file.Close()
			}
			if err != nil {
				return err
			}
		}
		return nil
	})
}
func Cat(filenames ...string) Filter {
	return FilterFunc(func(arg Arg) error {
		if len(filenames) == 0 {
			for s := range arg.In {
				arg.Out <- s
			}
			return nil
		}
		for _, f := range filenames {
			file, err := os.Open(f)
			if err == nil {
				err = splitIntoLines(file, arg)
				file.Close()
			}
			if err != nil {
				return err
			}
		}
		return nil
	})
}
func Cat ( filenames ... string ) Filter { return FilterFunc ( func ( arg Arg ) error { if len ( filenames ) == 0 { for s := range arg . In { arg . Out <- s } return nil } for _ , f := range filenames { file , err := os . Open ( f ) if err == nil { err = splitIntoLines ( file , arg ) file . Close ( ) } if err != nil { return err } } return nil } ) }
// Cat emits each line from each named file in order. If no arguments
// are specified, Cat copies its input to its output.
Cat emits each line from each named file in order . If no arguments are specified Cat copies its input to its output .