标签: scripting

需要Shell脚本才能根据第一列找到两个文件的差异

我有两个文件,每个文件有两列

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脚本的新手.请帮帮我.我的需求非常糟糕.

shell scripting

0
推荐指数
1
解决办法
1212
查看次数

重复说明bash脚本

这很容易就可以了......但我现在正在使用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次+.

什么是最优雅的方式?

优雅,在简短的意义上和其他人可以理解.

bash scripting loops

0
推荐指数
1
解决办法
116
查看次数

Bash案例条件

我正在处理类似于以下情况的案例陈述:

Case "$myvar" in
[aA]) {
     #dostuff
};;
Esac
Run Code Online (Sandbox Code Playgroud)

我的目标是捕获包含a或A的输入字符串的实例,而忽略字符串的其余部分.麻烦的是,如果输入包含其他内容(例如,ab),则我的case语句不会捕获该字符串.我确定问题出在我的正则表达式实现上,但我不知道如何修复它.

regex linux bash shell scripting

0
推荐指数
1
解决办法
157
查看次数

Lua只读桌子

如何在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)

c# security scripting lua sandbox

0
推荐指数
1
解决办法
1374
查看次数

Ruby脚本:%x(命令)和意外(错误

我找到了一个查找重复文件的工具,现在我已准备好删除重复项.我盯着输出文件的格式了一下,然后想出了这个脚本.

#!/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,我认为该方法的局限性非常明显.有任何想法吗?

ruby bash scripting

0
推荐指数
1
解决办法
344
查看次数

linux中不同类型的脚本

我是linux的新手,我想学习脚本.似乎有很多选择可以从bash shell脚本,python,perl lisp中学习脚本,可能还有更多我不知道的内容.我只是想知道所有这些的优势和劣势是什么,什么是一个好的开始?

python linux scripting perl

0
推荐指数
1
解决办法
747
查看次数

嵌入式脚本语言,带有用于多线程环境的C/C++ API

我正在寻找一种嵌入式脚本语言.

我不需要任何花哨的东西,只需要条件,循环,逻辑和算术运算等基本结构.

我有以下要求

  1. 线程友好 - 即没有"全局解释器锁"(python因此而出)
  2. 廉价的"解释器实例"创建 - 我可能有100个这样的.据我所知,lua每个都创建一个单独的gc线程,Lua_State这意味着lua已经出局了.
  3. 没有gc或refcounting或任何其他"动态"内存管理.一旦脚本执行,它应该简单地销毁任何变量.同样,python和lua都出局了.
  4. 当然它应该很快并且内存占用少.
  5. 应该适用于Windows,GNU/Linux和MacOS X.

任何帮助都非常感谢.

c c++ python scripting lua

0
推荐指数
1
解决办法
315
查看次数

提取一个数字和后面的字符串

我有一个解析日志文件的脚本,在编程的一部分我必须知道是否传输了一条消息,通过读取这些行,我可以获得消息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和它之后的确定和最后一行相同

python regex scripting

0
推荐指数
1
解决办法
75
查看次数

是否可以使写入多个文件的bash脚本运行得更快?

我有一个脚本从文件中读取行,获取每行的第一列,并附加到名为该行的文件(我正在尝试编写许多不同的文件,名为$ 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文件不是那么大,通常平均几百行,最多几千行
  • 实际上已经对id进行了排序,并且这些行以连续的块形式出现,即:
abc ...
abc ...
def ...
def ...
def ...
def ...
ghi ...
ghi ...
Run Code Online (Sandbox Code Playgroud)

bash shell scripting

0
推荐指数
1
解决办法
89
查看次数

如何使用bash在txt中随机排列

我有一个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脚本的新手

linux bash scripting

0
推荐指数
1
解决办法
117
查看次数

标签 统计

scripting ×10

bash ×5

linux ×3

python ×3

shell ×3

lua ×2

regex ×2

c ×1

c# ×1

c++ ×1

loops ×1

perl ×1

ruby ×1

sandbox ×1

security ×1