コンテンツにスキップ

レシピ: パイプの組み合わせ

yakuはstdinから読み取り、stdoutに書き込むので、Unixパイプラインに自然にフィットします。

markitdownでPDFからテキストを抽出し、翻訳します:

Terminal window
markitdown report.pdf | yaku --to ja --format md

curlでページを取得し、内容を翻訳します:

Terminal window
curl -s https://example.com | yaku --to ja

Markdownコンテンツの場合:

Terminal window
curl -s https://raw.githubusercontent.com/user/repo/main/README.md | \
yaku --to ja --format md

GitHub CLIを使ってissueを取得し翻訳します:

Terminal window
# issue本文を翻訳
gh issue view 123 --json body -q .body | yaku --to ja
# issueの全コメントを翻訳
gh api repos/owner/repo/issues/123/comments \
--jq '.[].body' | yaku --to ja
Terminal window
# JSON APIレスポンスを翻訳
curl -s https://api.example.com/products | yaku --to ja --format json
# 翻訳してjqでフォーマット
curl -s https://api.example.com/data | \
yaku --to ja --format json | jq '.'
Terminal window
# macOS: クリップボードを翻訳して上書き
pbpaste | yaku --to ja | pbcopy
# Linux (xclip)
xclip -selection clipboard -o | yaku --to ja | xclip -selection clipboard
Terminal window
# -oオプションを使用
echo "Hello" | yaku --to ja -o greeting.txt
# シェルリダイレクトを使用
echo "Hello" | yaku --to ja > greeting.txt
# ループで複数ファイルを翻訳
for f in docs/en/*.md; do
yaku --to ja -f "$f" -o "docs/ja/$(basename "$f")"
done
Terminal window
man ls | col -b | yaku --to ja | less

col -bはmanページ出力からフォーマットコードを除去します。

Terminal window
# 最初の100行だけ翻訳
head -100 large-doc.md | yaku --to ja --format md
# 翻訳して単語数をカウント
yaku --to ja -f article.en.md | wc -w
# コードから文字列を抽出して翻訳
grep -Eo '"[^"]*"' src/strings.go | yaku --to ja
  • パイプ時は--formatを使う。 ファイル拡張子がないとyakuはプレーンテキストをデフォルトにします。--format md--format json--format yamlを明示的に指定してください。
  • 翻訳前にフィルタリングする。 headtailgrepで入力サイズを減らしましょう。トークンと時間の節約になります。
  • ファイル出力には>より-oを使う。 -oオプションはstderrに確認メッセージを表示するので、ファイルが書き込まれたことが明確になります。