tac - concatenate and print files in reverse

문자열의 순서를 뒤집어 출력한다. 프로그램의 이름을 보면 알겠지만 cat을 뒤집어서 tac인데, cat과 같은 느낌으로 사용할 수 있다. 예를 들어 cat과는 다음과 같은 차이가 있다.

$ cat ttt.go
package main

import (
        "fmt"
        "os"
)

func main() {
        f, err := os.OpenFile("/dev/usb/lp0", os.O_RDWR, 0755)
        if err != nil {
                fmt.Println(err.Error())
                os.Exit(-1)
        }
        defer f.Close()

        f.Write([]byte("asdf"))

        os.Exit(0)
}

$ tac ttt.go
}

        os.Exit(0)

        f.Write([]byte("asdf"))

        defer f.Close()
        }
                os.Exit(-1)
                fmt.Println(err.Error())
        if err != nil {
        f, err := os.OpenFile("/dev/usb/lp0", os.O_RDWR, 0755)
func main() {

)
        "os"
        "fmt"
import (

package main

tac의 출력은 cat의 반대라는 것을 알 수 있다. 특히 중요한 것은 라인의 순서를 뒤집는 것이지 출력 하나하나를 다 뒤집는 것은 아니라는 것. 아예 뒤집는 것을 사용하기 위해서는 rev를 사용한다.