我在下面的脚本中提取Gedit中的当前打开文件路径。
#!/bin/bash
origPath=$GEDIT_CURRENT_DOCUMENT_URI
if [[ $origPath == *"smb"* ]]
then
finalPath=`php -f /var/www/html/pathswapcmd.php smb_path=$origPath`;
else
finalPath=$origPath;
fi
## echo -n $finalPath;
echo -n $finalPath | sed 's/^.*app/app/p' | xclip -sel clip;
exit;
通常我的系统中有Magento文件,因此我的路径只需从app
,skin
文件夹等开始。
现在,当我尝试删除app
之前的所有内容时sed
删除它但是它给路径三次分隔了一个垃圾字符,这个字符在Ubuntu文件夹的地址栏中无法识别(ofcourse)管理器。
我想要从sed
命令中删除重复行的简单明了的解决方案。
答案 0 :(得分:1)
s/pattern/replacement/p
将在默认情况下完成任何操作后输出行缓冲区,如果由于p
标志执行了替换,则还会再次输出。删除p
标志以避免再次打印替换行,或将-n
参数提供给sed
以避免打印每一行。
sed -n 's/pattern/replacement/p' # print only lines where replacement happened
sed 's/pattern/replacement/' # print all lines, possibly with replacements