مرشح السطور (Line filter) هو نوع شائع من البرامج التي تقرأ المدخلات من stdin وتعالجها، ثم تطبع مخرجات مشتقة منها على stdout. grep و sed هما مرشحات سطور شائعة.
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
استخدام قارئ مؤقت لـ os.Stdin يسمح لنا بالوصول لدالة Scanner المريحة التي تقرأ المدخلات سطراً بسطر.
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
Text تعيد السطر الحالي من المدخلات.
ucl := strings.ToUpper(scanner.Text())
اطبع السطر المحول.
fmt.Println(ucl)
}
تحقق من وجود أخطاء أثناء المسح. EOF لا يعتبر خطأ بواسطة Scan.
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "error:", err)
os.Exit(1)
}
}
تشغيل البرنامج:
$ echo 'hello' > /tmp/lines
$ echo 'filter' >> /tmp/lines
$ cat /tmp/lines | go run line-filters.go
HELLO
FILTER المثال التالي: مسارات الملفات.