Linux のテキスト ファイル内の制御文字 CTRL+A (SOH/ascii 1) をすべて置換する必要があります。SED でこれを行うにはどうすればよいですか?
質問する
50063 次
5 に答える
30
試す:
sed 's/^A/foo/g' file
Ctrl+ V+を使用して、上記のコマンドでシーケンスAを作成します。^A
于 2012-11-01T15:32:32.190 に答える
21
「置換」とは、ファイルを「その場で」変更することを想定しています。
GNU sed の使用:
# Create a file with a single control character (SOH)
echo -e "\x01" > file
# Change SOH control characters to the literal string "SOH"
sed -i 's/\x01/SOH/g' file
# Check result
cat file
与えます...
SOH
この-i
オプションは OS X sed では機能しないため、sed を一時ファイルにパイプして回避する必要があります。
于 2012-11-01T15:31:21.207 に答える
20
これは(オプションとこれを にパイプすることと同等)を使用cat
して行うことができます。-v
--show-nonprinting
sed
制御文字が見出しの開始 (SOH) 文字 (CTRL+A / ASCII 1) であり、それをタブに置き換えたい場合は、次のようにします。
cat -v file | sed 's/\^A/\t/g' > out
cat -v
は SOH 文字を ^A に置き換えます。これは で一致して置き換えられsed
ます。
于 2012-11-09T14:53:05.447 に答える
7
それらを何に置き換えますか?置換が 1 文字の場合tr
は、 よりも を選択することをお勧めしsed
ます。文字「a」に置き換えるには:
tr '\1' a < input-file > tmp && mv tmp input-file
于 2012-11-01T16:59:41.810 に答える