2023年8月2日发(作者:)
linux:vi替换命令:s/^.*$/L&/100##将100⾏内的⼩写转换成⼤写vi/vim 中可以使⽤ :s 命令来替换字符串。:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 skyn 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每⼀⾏中所有 vivian 为 sky可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/:%s+/oradata/apras/+/user01/apras1+ (使⽤+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/* ************************************1. :s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky :s/vivian/sky/g 替换当前⾏所有 vivian 为 sky2. :n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky :n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 sky (n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每⼀⾏的第⼀个 vivian 为 sky :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每⼀⾏中所有 vivian 为 sky4. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符 :s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/5. 删除⽂本中的^M 问题描述:对于换⾏,window下⽤回车换⾏(0A0D)来表⽰,linux下是回车(0A)来表⽰。这样,将window上的⽂件拷到unix上⽤时,总会有个^M.请写个⽤在unix下的过滤windows⽂件的换⾏符(0D)的shell或c程序。· 使⽤命令:cat filename1 | tr -d “^V^M” > newfile;
· 使⽤命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种⽅法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要⼿⼯进⾏输⼊,⽽不是粘贴。
· 在vi中处理:⾸先使⽤vi打开⽂件,然后按ESC键,接着输⼊命令:%s/^V^M//。
· :%s/^M$//g
如果上述⽅法⽆⽤,则正确的解决办法是:· tr -d "r" < src >dest
· tr -d "015"
· strings A>B6. 其它利⽤ :s 命令可以实现字符串的替换。具体的⽤法包括::s/str1/str2/ ⽤字符串 str2 替换⾏中⾸次出现的字符串 str1:s/str1/str2/g ⽤字符串 str2 替换⾏中所有出现的字符串 str1:.,$ s/str1/str2/g ⽤字符串 str2 替换正⽂当前⾏到末尾所有出现的字符串 str1:1,$ s/str1/str2/g ⽤字符串 str2 替换正⽂中所有出现的字符串 str1:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表⽰对搜索字符串的每次出现进⾏替换;不加 g,表⽰只对搜索字符串的⾸次出现进⾏替换;g 放在命令开头,表⽰对正⽂中所有包含搜索字符串的⾏进⾏替换操作。
2023年8月2日发(作者:)
linux:vi替换命令:s/^.*$/L&/100##将100⾏内的⼩写转换成⼤写vi/vim 中可以使⽤ :s 命令来替换字符串。:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 skyn 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每⼀⾏中所有 vivian 为 sky可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/:%s+/oradata/apras/+/user01/apras1+ (使⽤+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/* ************************************1. :s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky :s/vivian/sky/g 替换当前⾏所有 vivian 为 sky2. :n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky :n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 sky (n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每⼀⾏的第⼀个 vivian 为 sky :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每⼀⾏中所有 vivian 为 sky4. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符 :s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/5. 删除⽂本中的^M 问题描述:对于换⾏,window下⽤回车换⾏(0A0D)来表⽰,linux下是回车(0A)来表⽰。这样,将window上的⽂件拷到unix上⽤时,总会有个^M.请写个⽤在unix下的过滤windows⽂件的换⾏符(0D)的shell或c程序。· 使⽤命令:cat filename1 | tr -d “^V^M” > newfile;
· 使⽤命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种⽅法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要⼿⼯进⾏输⼊,⽽不是粘贴。
· 在vi中处理:⾸先使⽤vi打开⽂件,然后按ESC键,接着输⼊命令:%s/^V^M//。
· :%s/^M$//g
如果上述⽅法⽆⽤,则正确的解决办法是:· tr -d "r" < src >dest
· tr -d "015"
· strings A>B6. 其它利⽤ :s 命令可以实现字符串的替换。具体的⽤法包括::s/str1/str2/ ⽤字符串 str2 替换⾏中⾸次出现的字符串 str1:s/str1/str2/g ⽤字符串 str2 替换⾏中所有出现的字符串 str1:.,$ s/str1/str2/g ⽤字符串 str2 替换正⽂当前⾏到末尾所有出现的字符串 str1:1,$ s/str1/str2/g ⽤字符串 str2 替换正⽂中所有出现的字符串 str1:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表⽰对搜索字符串的每次出现进⾏替换;不加 g,表⽰只对搜索字符串的⾸次出现进⾏替换;g 放在命令开头,表⽰对正⽂中所有包含搜索字符串的⾏进⾏替换操作。
发布评论