echo "========= CHECKING Current Allocated Workspaces ========="
echo ""
echo "Allocated:"
grep $1 /etc/auto.indirect
echo ""
echo "Windows Friendly Path:"
IFS=/ read -a frags < <(grep $1 /etc/auto.indirect) #set path components into array frags
frags[0]="${frags[0]%:}" #strip ":" off *-filer-ns
echo "$(IFS=\\ ;printf '\\\\%s' "${frags[*]}" ;)" #set IFS to \ to print frags \-separated
以下我设法格式化为:
========= CHECKING Current Allocated Workspaces =========
Allocated:
wsone-rtp -rw,hard,intr,quota filer-filer-ns:/workspace/wslocal010/user
Windows Friendly Path:
\\\wsone-rtp -rw,hard,intr,quota filer-filer-ns\workspace\wslocal010\user
我正在尝试找到一种方法来删除来自我正在调用的表的尾随信息。
我希望从所谓的内容中删除:
wsone-rtp -rw,hard,intr,quota
请记住,wsone-rtp的第一个条目会根据表中较早的用户调用而更改。 例如,用户A可以是:wsone-rtp -rw,hard,intr,quota 例如,用户B可以是:wstwo-rtp -rw,hard,intr,quota
我认为必须有一些方法可以从被调用字符串的开头删除x个字符?
理想的最终输出将转换:
wsone-rtp -rw,hard,intr,quota filer-filer-ns:/ workspace / wslocal010 / user
到
\\滤波器-滤波器纳秒\工作空间\ wslocal010 \用户
答案 0 :(得分:1)
要删除字符串的X个第一个字符,可以使用cut。例如:
echo "a long string" | cut -c 5-
g string
答案 1 :(得分:0)
我还不太清楚你到底想做什么;但从每行的开头删除正好n个字符听起来很脆弱。如果您想要删除的某些选项发生变化({0}只是wsone
和wstwo
具有相同数量的字符的巧合会怎么样。可能会有wsthree
?)。
如果你想要打印最后一个&#34;单词&#34;,如果路径不包含空格,你可以通过sed -r 's/.*[ ]+//
管道(找到以空格结尾的最长序列,并将其替换为空;方括号内有一个凸起和一个标签。使用空格时,您必须依赖标记:字符串是否始终以filer-filer
开头?然后你可以说's/\(.*\)filer-filer/filer-filer/'
(找到以&#34结尾的字符串;文件管理器&#39;文件管理器&#34;并用#34; filer-filer&#34;替换它,你要保留它)。