簡単な質問で申し訳ありませんが、私は4日間勉強してみて盲目になり、正しい構文を打つことができないようです。
cygwinでsedを使用して、1つの印刷不可能なASCII文字を別の1つの印刷不可能な文字に置き換えようとしています。
これが私のソースファイルです。大文字のテキスト[角かっこ内]を使用して、印刷できないASCII文字を示しています。
myfile.txt:
line one[LF]
line two[LF]
line three[LF]
[SUBSTITUTE][LF]
line four{LF]
line five[LF]
line six[LF]
.
.
.
LFをTABに置き換えたいのですが。
LFは16進数の0Aであり、タブは16進数の09なので、基本的に、これを試しました。
sed -i 's/\x0A/\x09/g' myfile.txt
これはファイル内で何も変更しません。
もちろん、私は-b、-e、-rのようなさまざまなスイッチを試しましたが、角かっこあり、なし、/ gあり、なし、余分な円記号と円記号なし、8進数と10進数の表記、エルフのルーン文字まで、絶対に失敗。
ソースとしてファイルの代わりに「echo」を使用したいくつかの回答を読みましたが、混乱して機能しませんでした。
他の例では、実際の単語TABのように「チート」を使用しましたが、数値を使用して構文を学習できなかったため、TABだけでなく他の印刷できない文字にも適用できます。
'file'コマンドを試すと、次のようになります。
file myfile.txt
file.txt: data
だから、もちろん私は試しました:
sed -i -t UTF-8 's/\x0A/\x09/g' myfile.txt
しかし、私のsedはその-tオプションをサポートしていませんでした。
私がこれを試すとき:
oc -c myfile.txt
私が探している[LF]文字は次のように表示されます:
\n
私も検索語として\0Dを試しましたが、運もありません。
誰かが正しい構文を示すことによって私に手がかりを貸したいのであれば、私は非常に感謝するでしょう。
ありがとう。