引用符を使用せずに特殊文字を含むファイルを作成する方法

引用符を使用せずに特殊文字を含むファイルを作成する方法

特殊文字を含むファイルを作成しようとしています。しかし、二重引用符や一重引用符を使用したくありません。

このファイルをどのように作成できますか?

ベストアンサー1

バックスラッシュは、Bourneなどのシェルで引用の代替形式を提供するため、次のことができます。

printf %s \$\ \; > file

たとえば、ファイルに3つの特殊文字($、スペース、および;)が含まれているとします。 8進数シーケンスを使用してprintf正確なバイト値を指定することもできます。

printf \\1\\2 > file

バイト 1 と 2 を含むファイルを作成します。一部のprintf実装では、16進シーケンスもサポートしています。

printf \\xff\\x80 > file

または、Unicodeコードポイントを使用して文字を指定します。

printf \\u20ac > file

ユーロ記号を例に挙げてみましょう。ほとんどの実装では、文字はロケールの文字セットとして出力されます。 1つの例外は、組み込み関数がロケールの文字セットに関係なくprintfUTF-8に出力されることです。ksh93

テキストを入力する他の方法については、こちらの記事をご覧ください。これは複数行のテキストに便利です。

cat << \EOF > file
some text with $ \ | # *
and anything you want
EOF

ファイルの作成名前これらの文字の場合は、次を使用します。

echo text > \$\ \;

または:

echo text > $(printf \\1\\2)

など。スプリット+グローブの効果により、$(...)次の方法で無効にする必要があります。

IFS=; set -o noglob

$IFSまたはワイルドカード演算子(*、、、?)の[...]文字の場合。

おすすめ記事