我的剧本:
cd /var/www/try/
sort -u
files="$(find -L "/var/www/try/" -type d)"
echo "Count: $(echo -n "$files" | wc -l)"
echo "$files" | while read file; do
echo $file >> filename.csv
done
输出
/var/www/try
/var/www/try/cat
输出应为:
var-www-try
var-www-try-cat
第二种情况: 任何字符除了/因为我的文件夹名称包含/喜欢例如。
"tv/dvd"
输出生成:
/var/www/try/cat/tv/dvd
输出应为:
var-www-try-cat-tv/dvd-
答案 0 :(得分:2)
查看sed
,这是一种用于字符串替换任务的流行工具。
>> x=$(echo '/var/www/try/cat/tv/' | sed 's/\//-/g')
>> echo $x
-var-www-try-cat-tv-
>> x=${x:1}
>> echo $x
var-www-try-cat-tv-
编辑: 在回答你的第二个案件时:
因为我的文件夹名称包含/
也许这里存在误解,但你不应该在文件名中有/。见Is it possible to use "/" in a filename?