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基本上是一组文件名。
答案 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