STDINを介してOpen Officeにデータを提供できますか?

STDINを介してOpen Officeにデータを提供できますか?

bash変数にOpen Officeスプレッドシート文書が格納されています。以下を介してOpen Officeを提供するために、次のことを行いたいと思いますSTDIN

echo "$openOfficeDoc" | ooffice

しかし、これはうまくいきません。

メモ:Bash変数の内容はディスクに書き込まないでください。

ファイルの実際のデータをOpen Officeに渡そうとしていることを強調したいと思います。

Open Officeスプレッドシートファイルにパスワードを保存しようとしています。パスワードはGPGを使用して暗号化されます。セキュリティ上の理由から、パスワードをディスクに書き込むことは望ましくありません。

bash変数の値は、Open Officeスプレッドシート文書のバイナリブロブです。これはいいえASCII。

Blobの生成に使用するbashコードは次のとおりです。

data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)

WhileはEncrypted.gpgOpen Officeスプレッドシートの暗号化されたファイルです。

STDINを介してOpen Officeにデータを提供できますか?

答え1

私はOpenOfficeが標準入力を読むことができないと思います。しかし、それは問題ではありません。一時ファイルにデータを書き込むだけです。

ディスクにパスワードを書きたくありません。それは問題ではありません。ディスクに保存されていないファイルに書き込みます。

多くのシステムは、保存にメモリ内ファイルシステム(tmpfs)を使用します/tmp。 Solarisは長年これを行ってきました。 Linuxディストリビューションは混合速度が遅い(Fedora 18採用しましたが、DebianとUbuntuはまだ変更されていません。)通常、システム管理者が必要です。手動設定。ただし、最新のLinuxディストリビューションには、最新バージョンの標準ライブラリに必要なtmpfsファイルシステムがインストールされています。 tmpfsの標準位置は次のとおりです。/run/run/shmグローバルに書き込み可能です(同じ権限で/tmp)。ただし、一部のディストリビューションにはまだこの機能がない可能性があり/dev/shm、他の場所がある可能性があります。

答え2

テキストデータのインポート

あなたの質問はわかりませんが、OpenOfficeにインポートしたいデータがあるようです。その場合は、次のいずれかの方法を使用します。

CSVファイル

このデータをCSVファイル()に書き込ん.csvでから、OpenOfficeでファイルを開きます。

csv2odf

別のアイデアは、コマンドラインツールを使用してcsv2odfCSV形式のデータをODFファイルに書き込むことです。

実際の文書

ただファイルを開く

ただし、コマンドラインでODF文書を開こうとする場合は、次のことができます。

$ openoffice "$openOfficeDoc"

バイナリデータのインポート

OpenOfficeによるコンテンツパイプ

いくつかの観点から見ると、次のことができる方法がないと思います。

$ echo "$data" | openoffice

しかし、制限要因はLinuxではありません。変数に保存されたデータをうまくエコーし、STDINから着信ファイルデータを開く方法を知っているツールにパイプすることができます。

はい

$ echo $data|strings| head -10
[Content_Types].xml 
E`2+
)+Bp_9
no+yV
2q^QF
M xv
C1lA
d:NA
_rels/.rels 
b"gi

ここで制限要因はOpenOfficeです。オプションを見ると、STDINを介してデータを開くように誘導する方法はありません。ファイルを開く方法だけを知っています。

答え3

匿名パイプをファイルとして使用:

ooffice <(echo "$openOfficeDoc")

また、見ることができますhttps://stackoverflow.com/questions/345505/how-can-you-diff-two-pipelines-in-bash

答え4

これは実際にあなたの質問に対する答えではありませんが、現在やろうとしていることに対する完全な選択肢です。パスワードマネージャを使用してください。啓発、またはパスワードをGPGで暗号化されたプレーンテキストとして保存します。

関連情報