因此,我有一個文本文件,其中包含ASCII STX字符(可以用\ x02定位)撒在整個文件中。如果他們不在行尾,我想刪除它們。替換一個值,除了在行尾
# This removes all STX characters
sed -i 's/\x02//g' foo.txt
# This removes STX characters that are at the end of a line
sed -i 's/\x02$//g' foo.txt
如果一個字符不在行尾?
因此,我有一個文本文件,其中包含ASCII STX字符(可以用\ x02定位)撒在整個文件中。如果他們不在行尾,我想刪除它們。替換一個值,除了在行尾
# This removes all STX characters
sed -i 's/\x02//g' foo.txt
# This removes STX characters that are at the end of a line
sed -i 's/\x02$//g' foo.txt
如果一個字符不在行尾?
您可以匹配和捕捉在一個或多個字符,你需要刪除恢復它後用反向引用任何字符:
sed -i 's/\x02\{1,\}\(.\)/\1/g' foo.txt
這裏,\x02\{1,\}
比賽1,或者您需要刪除多個字符, \(.\)
將匹配並捕獲到組1中的任何字符,並且\1
將恢復結果中的捕獲的字符。
提示:你如何知道給定的字符是否在給定行的末尾? – 2017-02-09 21:00:42
試試'sed -i's/\ x02 \(。\)/ \ 1/g'foo.txt' –
也許你正在使用正則表達式'\ x02 [^ $]'?此外,你可能希望展望未來,不要用'[^ $]' – Isaac