做网站都注意哪些东西,抖音头像的网站制作教程,wordpress公共库设置,国外网站搜索引擎优化方案最近发现由于自己不良的安装软件的习惯#xff0c;shell的PATH路径包含了很多冗余的项。这里使用shell命令去除PATH的冗余项。 export PATH$(echo $PATH | sed s/:/\n/g | sort | uniq | tr -s \n : | sed s/:$//g)上面的代码可以去除linux环境变量中的重复项。 最近查看环境…最近发现由于自己不良的安装软件的习惯shell的PATH路径包含了很多冗余的项。这里使用shell命令去除PATH的冗余项。 export PATH$(echo $PATH | sed s/:/\n/g | sort | uniq | tr -s \n : | sed s/:$//g)上面的代码可以去除linux环境变量中的重复项。 最近查看环境变量时发现PATH中包含了很多重复项而在~/.bashrc中又没有看到什么重复的指令只好手动去重了。 起先在网上看到有人使用awk命令如下 awk -F: {sep for (i 1; i NF; i)if (unique[$i] ! 1){out out sep $isep :unique[$i] 1}print out
} $PATH但是我发现如果使用这份代码的话每次进行source更新时就会在原本的PATH路径下重复增加一些内容。而我对bash还不太熟决定学一下然后自己写一份。 #主要的指令
#替换
sed s/旧的字符串/新的字符串/g
#去重
uniq
#排序
sort
替换
tr -s 旧的字符 新的字符 因为目的是去重所以一定要使用uniq指令查看用法的话有两点需要注意 1. uniq只能用于行间去重 2. 重复的行必须相邻 解决方案 1. 对PATH变量进行适当的换行符替换 2. 使用sort排序使重复的行相邻 字符替换 sed和tr都是用于替换为什么要使用两种呢 tr算是一种轻量级的替换方法了直接将符合的字符替换不支持正则表达式。用来替换换行符比较方便。但如果想要做稍微复杂点的事情就比较困难了。 sed比较强大支持正则表达式但是它对换行符有自己的一套处理方式增加时还比较正常但我还尚未找到去掉的方法。 在我的处理过程中有这样的步骤 1. 将原本的:替换为\n 因为最后一组不存在:,而在排序后并不确定哪一组会排在最后所以并不是追加换行符 2. 排序 3. 去重 4. 将\n替换为: 5. 将最后一个:删去 完成 转载于:https://www.cnblogs.com/darryo/p/sed-tr-qu-chuPATH-zhong-de-zhong-fu-xiang.html