我有以下脚本来提取 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
文件夹等开始。
现在,当我尝试使用 sed
app
之前删除所有内容时,它会删除,但它提供了三次用垃圾字符分隔的路径,该字符在 Ubuntu 文件夹管理器的地址栏中无法识别(当然)。
我想要从命令中删除重复行的简单明了的解决方案sed
。
默认情况下,
s/pattern/replacement/p
将在完成任何操作后输出行缓冲区,如果由于p
标志而执行替换,也会再次输出它。删除 p
标志以避免再次打印替换的行,或向sed
提供 -n
参数以避免打印每一行。
sed -n 's/pattern/replacement/p' # print only lines where replacement happened
sed 's/pattern/replacement/' # print all lines, possibly with replacements