我有一个大约有100000个文件的目录,我想对所有以指定字符串开头的文件执行某些功能,这可能会匹配成千上万的文件.
我试过了
ls mystring*
Run Code Online (Sandbox Code Playgroud)
但是这会返回bash错误'Too many arguments'.我的下一个计划是使用
find ./mystring* -type f
Run Code Online (Sandbox Code Playgroud)
但这有同样的问题.
代码需要看起来像
for FILE in `find ./mystring* -type f`
do
#Some function on the file
done
Run Code Online (Sandbox Code Playgroud)
谢谢,Rik
我正在尝试使用Apache Lucene创建一个可搜索的电话/本地商业目录.
我有街道名称,公司名称,电话号码等字段.我遇到的问题是,当我尝试在街道上搜索街道名称有多个单词(例如"新月")时,不会返回任何结果.但是,如果我尝试用一个单词搜索,例如'新月',我会得到我想要的所有结果.
我正在使用以下内容索引数据:
String LocationOfDirectory = "C:\\dir\\index";
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
Directory Index = new SimpleFSDirectory(LocationOfDirectory);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE.34, analyzer);
IndexWriter w = new IndexWriter(index, config);
Document doc = new Document();
doc.add(new Field("Street", "the crescent", Field.Store.YES, Field.Index.Analyzed);
w.add(doc);
w.close();
Run Code Online (Sandbox Code Playgroud)
我的搜索工作如下:
int numberOfHits = 200;
String LocationOfDirectory = "C:\\dir\\index";
TopScoreDocCollector collector = TopScoreDocCollector.create(numberOfHits, true);
Directory directory = new SimpleFSDirectory(new File(LocationOfDirectory));
IndexSearcher searcher = new IndexSearcher(IndexReader.open(directory);
WildcardQuery q = new WildcardQuery(new Term("Street", "the crescent");
searcher.search(q, collector);
ScoreDoc[] hits …
Run Code Online (Sandbox Code Playgroud) 我有一块看起来像这样的xml:
<root>
<tag1>tractor</tag1>
<tag2>
<subtag1 att="apple" />
<subtag2>
<subsubtag1>red</subsubtag1>
<subsubtag2>lunch</subsubtag2>
</subtag2>
</tag2>
<tag1>forklift</tag1>
<tag2>
<subtag1 att="pear" />
<subtag2>
<subsubtag1>green</subsubtag1>
<subsubtag2>breakfast</subsubtag2>
</subtag2>
</tag2>
<tag2>
<subtag1 att="apple" />
<subtag2>
<subsubtag1>green</subsubtag1>
<subsubtag2>dinner</subsubtag2>
</subtag2>
</tag2>
<tag1>combine harvester</tag1>
</root>
Run Code Online (Sandbox Code Playgroud)
我需要对其进行转换,以便从每个tag2节点获取子标记2和3,但只有tag2节点,其中subtag1是apple.我还需要每个序列号.
我当前的代码看起来像这样:
<xsl:for-each select="//tag2">
<apple>
<seq_num><xsl:value-of select="position()" /></seq_num>
<colour><xsl:value_of select="subtag2" /></colour>
<meal><xsl:value_of select="subtag3" /></meal>
</apple>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
这样就可以了,除了我需要for-each只返回tag2,它们是苹果(即subtag1 = apple).我不能使用xsl:if或xsl:when因为那时序列号对于第二个苹果来说是不准确的.
有任何想法吗?
谢谢,Rik
我使用本网站上的说明创建了可重新定位的RPM:http: //www.cyberciti.biz/faq/rpm-relocatable-packages/
这意味着我可以使用将软件包安装到其默认位置/ opt/app
rpm -ivh mypackage.rpm
Run Code Online (Sandbox Code Playgroud)
但是,如果我决定将包安装到/ usr/local/bin中,我可以使用以下命令安装它:
rpm -ivh --prefix=/usr/local/bin mypackage.rpm
Run Code Online (Sandbox Code Playgroud)
所有这一切都很完美.但是,我需要通过Yum安装软件包.如何将--prefix参数传递给Yum?
我正在尝试在 CloudWatch Log Insights 中创建多方面的时间序列图。
我可以创建一个不是时间序列的多方面查询,并且我可以创建一个非方面时间序列查询,但我似乎无法同时执行这两项操作。
例如:我可以执行如下所示的查询:
fields @timestamp, someField1, @message
| stats count(*) by someField1, someField2
Run Code Online (Sandbox Code Playgroud)
这将为我提供一个按 someField1 和 someField2 细分的结果表。我还可以这样做:
fields @timestamp, someField1, @message
| stats count(*) by bin(1h)
Run Code Online (Sandbox Code Playgroud)
这会给我一个时间序列图。
但是,我无法弄清楚如何将两者结合起来,以便我得到一个带有多条线的时间序列图。
这在 AWS CloudWatch 日志中是否不可用,或者是否有我还没有找到的方法?
amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights
我需要创建一个文件列表,这些文件位于我的硬盘上,按照它们到达硬盘的顺序.为此,我使用了以下内容:
ls -lat
Run Code Online (Sandbox Code Playgroud)
它列出了日期/时间顺序中的所有文件,但是,它只将它们排序到最近的秒.这里的问题是有成千上万的文件,每隔一段时间,其中一些文件在同一秒内聚集在一起.我需要的确切正确的顺序.我猜测最简单的方法是将创建时间延长到毫秒(或者纳米)秒.为此,我尝试使用以下内容:
stat $myfile
Run Code Online (Sandbox Code Playgroud)
查看修改时间,但它始终显示小时:分钟:秒00000000000.
有没有办法做到这一点?谢谢,Rik
我正在尝试在Visual Studio 2012中构建一个SignalR应用程序.我的问题是它在Visual Studio调试(在Windows 7上使用Visual Studio 2012)下运行良好,但是当我尝试在Windows Server 2012上的IIS 8上部署应用程序时,该应用程序只是显示index.html页面.
我决定尝试缩小问题是在我的代码中还是在SignalR中.我编写了http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr中显示的SignalR教程.这在Visual Studio下工作正常,但再一次,除了在IIS下显示静态页面之外,它不会做任何事情.
我已经尝试了这里列出的一些方法:Signalr/Hub没有在IIS 7中加载但在Visual Studio中正常工作,但它们似乎都没有工作.
我正在尝试确定创建特定文件的用户,如下所示:
string path = "C:\\TheFile.dat";
string user = System.IO.File.GetAccessControl(path).GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();
Run Code Online (Sandbox Code Playgroud)
如果文件是由不是 Administrators用户组成员的用户创建的,则返回用户的用户名.然而,当文件被别人谁创造了管理员用户组的成员,"域\管理员"被退回.
任何人都可以想到为什么会发生这种情况以及如何确保返回实际的用户名?
谢谢.
我有一个C#ListView,我想根据列的内容自动调整列宽的大小。
我知道将列宽设置为-1将使列的大小与最宽成员的长度相同。我知道将列宽设置为-2将使列的大小与列标题的长度相同。如何将列的大小设置为两者中的较大者?
我可以做这样的事情:
for (int i = 0; i < listView.Columns.Count; ++i)
{
listView.Columns[i].Width = -1;
int width1 = listView.Columns[i].Width;
listView.Columns[i].Width = -2;
if (width1 > listView.Columns[i].Width)
listView.Columns[i].Width = -1;
}
Run Code Online (Sandbox Code Playgroud)
但是它确实效率极低。
有人有答案吗?
我有两个XML文件需要合并到一个文件中.当我尝试合并它们时,我得到一个错误,说它们中的一个不符合.
违规的XML文件看起来像:
<letter>
<to>
<participant>
<name>Joe Bethersonton</name>
<PostalAddress>Apartment 23R, 11454 Pruter Street</PostalAddress>
<Town>Fargo, North Dakota, USA</Town>
<ZipCode>50504</ZipCode>
</participant>
</to>
<from>
<participant>
<name>Jon Doe</name>
<PostalAddress>52 Generic Street</PostalAddress>
<Town>Romford, Essex, UK</Town>
<ZipCode>RM11 2TH</ZipCode>
</participant>
</from>
</letter>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码段合并这两个文件:
try
{
Dataset ds = new DataSet();
Dataset ds2 = new DataSet();
XmlTextReader reader1 = new XmlTextReader("C:\\File1.xml");
XmlTextReader reader2 = new XmlTextReader("C:\\File2.xml");
ds.ReadXml(reader1);
ds2.ReadXml(reader2);
ds.Merge(ds2);
}
catch(System.Exception ex)
{
Console.WriteLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
这会出现以下错误:
同一个表'参与者'不能是两个嵌套关系中的子表.
这两个XML文件都以UTF-16编码,这使得它们通过简单的文本读写很难组合.
我需要的最终结果是一个XML文件,其中第一个XML文件的内容后跟第二个XML文件的内容,整个批次周围有一个标记,顶部有一个标题.
有任何想法吗?
谢谢,Rik
我有两个 cURL 命令,我试图将它们转换为 Ansible。它们看起来像这样:
curl -v -ik --header "Content-Type: application/json" --header "X-Application-Username: my_username" --header "X-Application-Password: my_password" --request PUT --data '{"enabled":"False","persisted" : true,"concurrentExecution" : false, "type" : "cron","schedule" : "0/10 * * * * ?","invokeService" : "provisioner","invokeContext" : { "action" : "someAction","source" : "path/to/resource"}}' "https://localhost:8443/path/to/url/that/I/need"
curl -v -ik --header "Content-Type: application/json" --header "X-Application-Username: my_username" --header "X-Application-Password: my_password" --request PUT --data '{"enabled":"True","persisted" : true,"concurrentExecution" : false, "type" : "cron","schedule" : "0/10 * * * * ?","invokeService" : "provisioner","invokeContext" : { "action" : …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个bash脚本,它查看一个充满文件的目录,并将它们分类为纯文本或二进制文件.如果文件仅包含明文字符,则文件为纯文本,否则为二进制文件.到目前为止,我已经尝试了以下grep的排列:
#!/bin/bash
FILES=`ls`
for i in $FILES
do
########GREP SYNTAX###########
if grep -qv -e[:cntrl:] $i
########/GREP SYNTAX##########
then
mv $i $i-plaintext.txt
else
mv $i $i-binary.txt
fi
done
Run Code Online (Sandbox Code Playgroud)
在grep语法行中,我也试过了没有-v标志并交换if语句的分支,以及它们与[:alnum:]和[:print:]的两种组合.这些变体中的所有六个产生一些标记为二进制的文件,其仅包含plantext和一些标记为明文的文件,其包含至少一个不可打印的字符.
我需要找到一种方法来识别只包含可打印字符的文件,即AZ,az,0-9,标点符号,空格和新行.包含任何不在此集合中的字符的所有文件都应归类为二进制文件.
我一直在砸墙试图将它分类半天.救命!谢谢,Rik
我有一个Windows窗体应用程序,我希望能够在用户执行特定操作时显示"便利贴"类型的东西.
例如:用户执行自动隐藏控件的操作.
我的应用程序应该:o弹出一个便条,说明发生了什么.o当用户单击表单上的任何位置时,再次隐藏发布便笺.
我已经将它作为一个带有标签的简单面板实现了便条,它在特定事件发生时显示和隐藏.
但是,我似乎无法捕获父UserControl的OnClick事件.父控件是一个嵌套控件,包含一个拆分容器,其中一个包含面板和一个制表符控件,每个控件包含一个包含各种内容的用户控件.
除了处理每个子控件的click事件之外,任何人都可以想到我可以在父控件上捕获的事件,当用户单击父控件中的任何位置时,我可以使用该事件来隐藏它的注释吗?
谢谢,Rik