我想使用awk和system()函数来移动几个目录.
我有一个文件,我想用awk名称进行处理,file.cfg其组织方式如下:
/path1 /path2
/some_path /some_other_path
and so on..
Run Code Online (Sandbox Code Playgroud)
每个第一条路径都通过空格与第二条路径分开所以这就是我做的方式:
awk '{system(mv -R $1" "$2)}' file.cfg
Run Code Online (Sandbox Code Playgroud)
但它没有用,我得到了
sh: 0/home/my_user/path1: No such file or directory
Run Code Online (Sandbox Code Playgroud)
但file.cfg看起来像这样:
/home/my_user/path1 /home/my_user/path2
Run Code Online (Sandbox Code Playgroud)
之前没有0 /home.那我在这里错过了什么?
我想知道是否有可能(如果是这样,如何)编写一系列具有相同效果的指令push.例如,如果内容ax是1200,我做了push ax,我还可以用什么其他指令来完成什么push ax呢?
我不确定如何问这个,但我会尽量做到具体.想象一个俄罗斯方块屏幕,只有不同形状的矩形,落到底部.我想计算一个接近另一个的矩形的最大数量而不重叠.我在标题中将它们命名为行,因为我实际上只对计算时矩形的长度感兴趣,或者是平行于x轴的线,它正朝着它倾斜.
所以基本上我有一个带开始和结束的自定义类型,两个整数都在0到100之间.假设我们有一个从1到n的矩形列表.rectangle_n.start(除非是最接近原点的矩形)必须是> rectangle_(n-1).end,以便它们永远不会重叠.我正在从具有随机数的文件中读取矩形坐标(都是x轴坐标).
例如:考虑这个矩形类型对象列表
rectangle_list {start, end} = {{1,2}, {3,5}, {4,7} {9,12}}
Run Code Online (Sandbox Code Playgroud)
我们可以观察到第3个对象的起始坐标为4 <前一个矩形的结束坐标为5.因此在排序此列表时,我必须删除第二个或第三个对象,使它们不重叠.
我不确定这种问题是否有类型,所以我不知道如何命名它.我对可以应用在这些对象列表上的算法感兴趣,并相应地对它们进行排序.
我用c ++标记了这个,因为我写的代码是c ++,但任何语言都可以用于算法.


这可能是简单而愚蠢的,但无论如何我会问它,因为我似乎无法弄明白.
一个简单的代码片段:
assume cs:code, ds:data
data segment
b dd 256
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,word ptr b -> the result of this operation will be ax:= 256 (100h)
mov bx,word ptr b+1 -> while this is going to be bx:= 1
Run Code Online (Sandbox Code Playgroud)
我想它与地址有关,它被一个字节或其他东西移动但我不完全确定,我真的需要理解.
提前致谢 !
好的,问题很简单.如果我有2个随机字节,比如150(a [0])和215(b [0]),我想添加它们.显然他们的总和不适合一个字节,所以如果我添加它们我会得到一个溢出.我已经尝试在al中存储其中一个字节并执行cbw,这样我就会在单词ax上表示相同的数量,并将第二个字节添加到那个,但是有些东西我无法理解,因为它不起作用.这是一个示例代码:
data segment
a db 150,182,211
b db 215,214,236
data ends
code segment
start:
mov ax,data
mov ds,ax
lea si,a ; these 2 shouldn't be here since i realised eventually that
; i could use
lea di,b ; a constant for memory addressing and not necessarily a
; a register
mov ax,0000
mov bl,a[0]
mov al,b[0]
cbw
adc bx,ax ; so this didn't work out well
mov ax,0000
mov al,a[0]
cbw ; convert one of the bytes into …Run Code Online (Sandbox Code Playgroud) 给出了AC源程序.确定源中每个已定义的函数,调用次数以及调用发生的行.
我能想到的最好的事情是,grep -c 'function (' code.c
这只有在我知道函数名称时才有效,并且它只提供调用次数(考虑到该文件中没有原型).不知道还有什么可以开始,所以任何建议都会得到很好的满足.
好吧,为了使事情变得尽可能简单,我说我有一个基本循环,我想用它来修改标记为a的数组的某些元素.在下面的示例代码中,我尝试将a的所有元素替换为1,但这并不能真正起作用.
assume cs:code ,ds:data
data segment
a db 1,2,3,4
i db 0
data ends
code segment
start:
mov ax,data
mov ds,ax
lea si,a
the_loop:
mov cl,i
cmp cl,4
jae the_end
mov ds:si[i],1 ; this is the part that i don't really understand since
inc i ; i'm expecting i=0 and ds:si[i] equiv to ds:si[0] which
loop the_loop ; is apparently not the case here since i actually receives the
; the value 1
the_end:
mov ax,4c00h
int 21h
code ends …Run Code Online (Sandbox Code Playgroud)