以下具有while循环和if语句的bash语句有什么问题

时间:2019-07-16 09:23:23

标签: bash unix

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication120
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            List<Dictionary<string, string>> items = new List<Dictionary<string, string>>();
            XmlReader reader = XmlReader.Create(FILENAME);

            reader.ReadToFollowing("hugeArray");

            while (!reader.EOF)
            {
                if (reader.Name != "item")
                {
                    reader.ReadToFollowing("item");
                }
                if (!reader.EOF)
                {
                    XElement item = (XElement)XElement.ReadFrom(reader);
                    Dictionary<string, string> dict = item.Elements()
                        .GroupBy(x => x.Name.LocalName, y => (string)y)
                        .ToDictionary(x => x.Key, y => y.FirstOrDefault());

                    items.Add(dict);
                }
            }
        }
    }


}

这是怎么了?我收到即将完成的意外令牌,错误。

other_live_photos.csv基本上是一组文件名。

1 个答案:

答案 0 :(得分:1)

如果您有示例文件,这会有所帮助,以便我们确定什么是过滤条件。基于这样的想法:other_live_photos.csv中还有其他条目不包含字符串live_photos

while read line 
do 
 livePhotos=$(grep live_photos $line)
 cp $livePhotos other_live_photos 
done < other_live_photos.csv

如果它是文件中的每个订单项,则只需排除变量:

while read line 
do 
 cp $line other_live_photos 
done < other_live_photos.csv

如果要在移动之前确定$line中的文件是否存在(如果不存在,该怎么办?什么都没有),那么:

while read line
 do 
   if [ -f  $line ] 
   then
    cp live_photos/$line other_live_photos 
   fi
 done < other_live_photos.csv