我有两个文件,每个文件有两列
File1 列数低于:
ECDLT 5
DBG0 0
AHDST 53
RSNDL 10
DBLOG 2
ATDLM 1
ATREJ 1
DLMKT 0
AKDRP -100
ALTCM 100000000
BCPTM -1000000000
PERFS 1
OMSTD 1
LDTHD 1
DGCAN 1
HRLOG 1
AKALT 0
Run Code Online (Sandbox Code Playgroud)
File2 列数低于:
ECDLT 5
DBG0 0
MFLOR 1
LIPEM 1
GXTHR 5
LIPEM 1
LIPEM 1
RPTAT -1
RPTPA -1
PTIMR 1
NOQUE 1
AHDST 53
RSNDL 10
DBLOG 2
Run Code Online (Sandbox Code Playgroud)
所以,在这里我需要一个shell脚本来查找使用第一列的两个文件的差异,在输出中它应该打印两列.
我是shell脚本的新手.请帮帮我.我的需求非常糟糕.
这很容易就可以了......但我现在正在使用bash.我正在寻找可以跨越langs复制的背后的理解.
所以...
我正在复制目录树中的文件,而不是用另一个文件替换该文件.
cp "$DIR"/folder2/file2 "$DIR";
mv "$DIR"/folder1/file1 "$DIR"/folder2/file2;
Run Code Online (Sandbox Code Playgroud)
然后我把复制的文件移到另一个文件夹中......开始相同的舞蹈.
cp "$DIR"/folder3/file3 "$DIR";
mv "$DIR"/file2 "$DIR"/folder3/file3
Run Code Online (Sandbox Code Playgroud)
我想这样做100次+.
什么是最优雅的方式?
优雅,在简短的意义上和其他人可以理解.
我正在处理类似于以下情况的案例陈述:
Case "$myvar" in
[aA]) {
#dostuff
};;
Esac
Run Code Online (Sandbox Code Playgroud)
我的目标是捕获包含a或A的输入字符串的实例,而忽略字符串的其余部分.麻烦的是,如果输入包含其他内容(例如,ab),则我的case语句不会捕获该字符串.我确定问题出在我的正则表达式实现上,但我不知道如何修复它.
如何在Lua中将表格设为只读?(具体来说,LuaInterface与Lua 5.1 for C#,但我认为这不会改变任何东西)我知道如何使用__index和__newindex,但这并不妨碍某人运行:
math = nil,这可能会导致进一步的脚本错误地执行.
我目前的"保护"功能:
function protect(table)
return setmetatable({}, { __index = table,
__newindex = function(table, key, value) error("attempted to modify a read only table")
end, __metatable = false }) end
math = protect(math)
math.sqrt = nil // successfully protected
math = nil // this is bad and can happen!
Run Code Online (Sandbox Code Playgroud) 我找到了一个查找重复文件的工具,现在我已准备好删除重复项.我盯着输出文件的格式了一下,然后想出了这个脚本.
#!/usr/bin/env ruby
contents = File.open('fdupes-result', 'rb') { |f| f.read }
duplicates = contents.split("\n\n")
duplicates.each do |set|
list = set.split("\n").reverse
list.drop(1).each do |filename|
# print "rm #{filename}"
%x[ rm #{filename} ]
end
end
Run Code Online (Sandbox Code Playgroud)
评论的print陈述是我用来非破坏性地测试的东西,它似乎工作得很好.但当我添加%x命令时,我开始得到
sh: 1: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)
我不知道发生了什么,直到我意识到文件的名字就像/media/LilGalactus/music/Robert Johnson - Complete Recordings/Robert Johnson - The Complete Recordings (Disc2of2)[EAC-FLAC](oan)/s.gif- 例如,我的数据充满了未转义的空格,括号等.大约30秒我认为通过使用类似的vim命令来逃避字符:s/\(/\\\(/g,我认为该方法的局限性非常明显.有任何想法吗?
我是linux的新手,我想学习脚本.似乎有很多选择可以从bash shell脚本,python,perl lisp中学习脚本,可能还有更多我不知道的内容.我只是想知道所有这些的优势和劣势是什么,什么是一个好的开始?
我正在寻找一种嵌入式脚本语言.
我不需要任何花哨的东西,只需要条件,循环,逻辑和算术运算等基本结构.
我有以下要求
Lua_State这意味着lua已经出局了.任何帮助都非常感谢.
我有一个解析日志文件的脚本,在编程的一部分我必须知道是否传输了一条消息,通过读取这些行,我可以获得消息ID并知道消息是否被传输.
01:09:25.258 mta Messages I Doc O:NVS:SMTP/alarm@yyy.xx R:NVS:SMS/+654811 mid:6261
01:09:41.965 mta Messages I Rep 6261 OK, Message received(ID: 26)
08:14:14.469 mta Messages I Doc O:NVS:SMTP/alarm@xxxx.en R:NVS:SMS/+654646 mid:6262
08:14:30.630 mta Messages I Rep O:NVS:SMTP/alarm@azea.er R:NVS:SMS/+304859 mid:6262
08:14:30.630 mta Messages I Rep 6262 Error while transmitting (ID: 28)
Run Code Online (Sandbox Code Playgroud)
我感兴趣的线是第二个和最后一个,我想提取6261和它之后的确定和最后一行相同
我有一个脚本从文件中读取行,获取每行的第一列,并附加到名为该行的文件(我正在尝试编写许多不同的文件,名为$ id.txt).
是否有可能有一个比这更快的脚本(在单节点机器上)?请注意,我使用read -r并且id="$(echo $line | awk '{print $1}')"因为我有以制表符分隔的字段,并且在某些字段中存在某些字符,例如我希望保留的字符串.
while read -r line
do
id="$(echo $line | awk '{print $1}')"
echo "$line" >> $id.txt
done < $1
Run Code Online (Sandbox Code Playgroud)
我输入的一些特征:
$id.txt文件不是那么大,通常平均几百行,最多几千行Run Code Online (Sandbox Code Playgroud)abc ... abc ... def ... def ... def ... def ... ghi ... ghi ...
我有一个txt文件,其中包含一些行,例如:
a
b
c
f
e
f
1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)
现在我想随机行并将其打印到另一个txt文件,例如:
f
6
e
1
and so on...
Run Code Online (Sandbox Code Playgroud)
任何身体可以帮助我吗?我是bash脚本的新手