「ls」を呼び出し、「s」で終わるファイルの正規表現フィルタリングを介して各行を渡す簡単なプログラムを作成しました。ls は、exec パッケージを学習する目的でのみ使用されます。以下のコードをより正確/簡潔/うまくいくように改善するにはどうすればよいですか?
package main
import (
"bufio"
"fmt"
"os/exec"
"regexp"
)
func main() {
cmd := exec.Command("ls")
stdout, _ := cmd.StdoutPipe()
s := bufio.NewReader(stdout)
cmd.Start()
go cmd.Wait()
for {
l, _, err := s.ReadLine()
if err != nil {
break
}
if m, err := regexp.Match(".*s$", l); m && err == nil {
fmt.Println(string(l))
}
}
}