~しようとしています
echo "foo
foo
foo
....[many many lines of foo here]
foo" > "/Users/myname/destination.txt"
Applescriptを介してfoo行が特定の文字数(255392文字のように見える)に達すると、エラーを返します。
「Applescriptを介して」という言葉は、プロセスを停止し、終了状態がゼロでないときに返されるAppleScriptの「do shell script」を使用しようとしていることを意味します。"error "The command exited with a non-zero status." number 255
これは私のApplescriptコードです。
set mytext to "foo
foo
foo
....[many many lines of foo here]
foo"
do shell script ("echo " & quoted form of mytext & " > " & "/Users/myname/destination.txt")
入力に使用する実際の大きなテキストデータ(20000行以上、285831文字)には引用符とバックスラッシュがたくさん含まれており、テキストデータを端末に直接入力してファイルを複雑にし、一部を誤って解釈させたくありません。私が持っているものの中で、入力テキストデータの一部がコマンドまたはファイル名として提供されているので、bashを使用して直接検証しませんでした。
これはおそらくApplescriptの問題に近いですが、ここでより速い答えを得ることができると思ってここに投稿します。
エコーに入力できる文字数に制限はありますか?これをどのように避けることができますか?
編集:これをシェルスクリプトで書いて端末で実行するとうまくいきましたが、Applescriptを介してこれを実行したいのですが、なぜこれがApplescriptで機能しないのかわかりません。
#!/bin/bash
echo "aaaaaaa[100000+ "a"s in here]aaaa" > "/Users/myname/destination.txt"
答え1
大きなテキストファイルにテキストを追加するには、次のいずれかを試してください。 (これはシェルコマンドです。私はapplescriptを全く理解していません。)
echo "new text" > newfile
cat oldfile >> newfile
mv newfile oldfile
おそらくこれが最も簡単な方法です。
ex
これは内部ファイルを編集するための非常に高度な方法です。
printf '%s\n' '0i' "Text to prepend" "Another line of text to prepend" . x | ex myfile
しかし、あなたの編集内容によると、シェルで引用がどのように機能するのか理解できないようです。