最後の一部のスペース(例:4)を削除したいです。line$#*425 with space
完了できません。
echo "line$#*425 with space " | sed 's/ /\1 \2/g'
私も使ってみようかと思っていますが、od -b
まだよくわかりません。
私は何をすべきですか?
ノート:スペースは通常の ""またはタブ文字です。
編集する:以下の回答を確認するためにテストを行った方法です。
[root@testgfs2 test]$echo -e "line$#*425 with space \t " | sed 's/[[:blank:]]\{4\}$//' | od -b
0000000 154 151 156 145 060 052 064 062 065 040 167 151 164 150 040 163
0000020 160 141 143 145 040 011 040 012
0000030
削除は、空白の単語の後ではなく、行末で発生します。タブ(011)まだそこにいます。
答え1
あなたのコード例があなたの質問と一致しないようです。あなたのコード例はグループ化されていないので、何も引用しないで\1
ください\2
。これはあなたが求めるものと同じです。
sed 's/space[[:blank:]]\{4\}/space/' <<< "line$#*425 with space "
答え2
維持したい部分をグループに配置します。正規表現で引用する必要がある文字()を引用することを忘れないでください\[.*^$
。
sed -e 's/\(line\$#\*425 with space\)[ \t][ \t][ \t][ \t]/\1/'
sed が\t
タブ表示をサポートしていない場合は、\t
リテラルタブに置き換えます。