c#: 将一个针对unix shell的字符串转换为windows命令提示符的字符串
这是一个示例字符串,我从插座流下了. \033[H\033[J\033[1;30HSUPERVISOR MAIN MENU\033[6;5H 0. Exit Exit\033[7;5H 1. Help Display help\033[8;5H 2. Control Calling lists and users\033[9;5H 3. Campaign Campaigns\033[10;5H 4. Manage 如果您想查看输出,我希望打开一个unix/linux shell,键入 echo -e ,然后是一个空间,然后是单个引号中的上述字符串,然后命中Enter Enter键.输出显示出: SUPERVISOR MAIN MENU 0. Exit Exit 1. Help Display help 2. Contro
20 2024-04-25
编程技术问答社区
Dockerfile中只有第一行被读取
我正在尝试使用docker.dotnet在远程Linux VM上构建图像(Docker Rest API的C#包装器),但只有我的Dockerfile的第一行被读取: FROM ubuntu:14.04 RUN apt-get update && apt-get install -y php5-cli 因此,仅创建了基本的Ubuntu映像,并且尚未安装PHP.我已经将dockerfile中的文件末端转换为\ n(unix),而不是\ r \ n(windows),但这没有效果.根据我的API调用,也未设置图像存储库名称. 奇怪的是,如果我只在码头中包含一行: FROM ubuntu:14.04 然后设置了图像存储库名称,因此看起来第二行中的某些内容正在引起问题. 这是docker.dotnet中调用buildimagefromdockerfileasync的方法: static async Task BuildImageFromDockerfile(
16 2024-04-23
编程技术问答社区
先按字母顺序排序,再按数字排序
我有一个未分类的服务器列表,如以下; bgsqlnp-z101 bgsqlnp-z102 bgsqlnp-z103 bgsqlnp-z2 bgsqlnp-z3 bgsqlnp-z5 dfsqlnp-z108 dfsqlnp-z4 bgsqlnp-z1 dfsqlprd-z8 fuqddev-z88 fuqhdev-z8 ghsbqudev-z18 heiappprod-z1 htsybprd-z24 使用sort读取文件,我正在尝试获取以下内容; bgsqlnp-z1 bgsqlnp-z2 bgsqlnp-z3 bgsqlnp-z5 bgsqlnp-z101 bgsqlnp-z102 bgsqlnp-z103 dfsqlnp-z4 dfsqlnp-z108 dfsqlprd-z8 fuqddev-z88 fuqhdev-z8 ghsbqudev-z18 heiappprod-z1 htsybprd-z24 我只是找不到适合我的-k选项的键Def. 这是我最接近的;
14 2024-04-23
编程技术问答社区
unix 命令:如何获取前 n 条记录
我想使用unix命令获取顶级n记录: 例如. 输入: 1 a 2 B 3 C 4 D 5 e 输出(获取前3个): 5 e 4 D 3 C 当前我正在做: cat myfile.txt | sort -k1nr | head -3 > my_output.txt 它可以正常工作,但是当文件变大时,它会变得非常慢. 它很慢,因为它完全对文件进行分类,而我需要的只是前3个记录. 我可以使用任何命令来获取前3个记录吗? 解决方案 perl -ane ' BEGIN {@top = ([-1]) x 3} if ($F[0] > $top[0][0]) { @top = sort {$a->[0] $b->[0]} @top[1,2], [$F[0], $_]; } END {print for reverse map {$_->[1]} @top} '
66 2024-04-23
编程技术问答社区
如何在 unix 中按字母和数字对不同字段的文件进行排序?
请不要认为这是"在Unix中排序字母数字数据"问题的重复...我查看了其他答案,并认为我的情况有些不同! 我有这样的数据: A 192 D 112 D 188 C 091 A 281 B 919 ...我想对第一个第1列(按字母顺序)进行排序,然后按第2列(数值)对.我尝试使用: sort -n -k1,2 ...但这给了我正确排序的第一个字段,但是第二个字段的错误排序(1000,1002,1003,10,1 ...而不是1,10,1000,1002,1003 ). 有人可以建议如何按我想要的方式对这两列进行分类? 解决方案 尝试这样使用: - sort -k1,1 -k4,4n -n:使程序根据数值值进行排序 -k选择:使用给定的列号对数据/字段进行排序.例如,选项-K 2使用第二个程序进行排序 数据列.选项-K 3,3N -K 4,4N分类.首先 它将对第三列进行排序. 其他解决方案
28 2024-04-23
编程技术问答社区
如何使用 Unix 排序命令,在一列中按人类可读的数字文件大小排序?
现在回答了这个问题 - 滚动到本帖子的结尾. 很抱歉,如果答案已经在这里,但是我到目前为止发现的所有答案都建议-h标志或-n标志,而这些答案都不为我工作... 我有一些curl命令的输出,这给了我几列数据.这些列之一是人类可读的文件大小(" 1.6MB"," 4.3GB"等). 我正在使用Unix sort 命令按相关列进行排序,但是它似乎是在尝试按字母顺序排序而不是数字进行排序.我尝试同时使用-n和-h标志,但是尽管它们确实更改了顺序,但在这两种情况下,订单在数字上都是正确的. 我在Centos Linux Box上,版本7.2.1511.我拥有的 sort 的版本是" sort(gnu coreutils)8.22". 我尝试以这些不同格式使用-h标志: curl localhost:9200/_cat/indices | sort -k9,9h | head -n5 curl localhost:9200/_cat/indices | sort
20 2024-04-23
编程技术问答社区
如何使用排序命令对制表符分隔文件进行排序?
我有一个具有以下格式的数据: foo1.001.332.003 现在,我尝试根据最后一个字段对文件进行分类. 我尝试了以下命令,但没有按照我们的预期进行排序. $ sort -k3nr file.txt # apparently this sort by space as delimiter $ sort -t"\t" -k3nr file.txt sort: multi-character tab `\\t' $ sort -t "`/bin/echo '\t'`" -k3,3nr file.txt sort: multi-character tab `\\t' 正确的方法是什么? 解决方案 使用 bash ,这将有能力: $ sort -t$'\t' -k3 -nr file.txt 请注意单字符串前面的美元符号.你可以阅读 它在/em>人页. 其他解决方案 默认情况下,字段定
14 2024-04-23
编程技术问答社区
如何在不使用 crontab 的情况下在后台持续运行 unix 脚本?
我如何在不使用crontab的情况下继续在后台运行脚本.即使在我注销之后,该脚本也应运行,如果它在系统重新启动后不启动,则可以接受. 解决方案 有几种方法可以做到这一点,但最整洁的方法是使用屏幕.这使您可以创建一个可以透彻在计算机上的会话,您只需重新连接以检查长期运行过程的进度. 如果您不想使用screen可以使用nohup这使您可以运行一个任务: nohup mytask & 您的任务现在将在后台运行,并将在注销中幸存下来,但是与screen不同,没有办法再次控制它. . 其他解决方案 if [ "x$1" != "x--" ]; then $0 -- 1> /dev/null 2> /dev/null & exit 0 fi 这就是您可以将脚本作为守护程序运行的方式.首先,您的脚本(父)将创建自己(一个孩子)的副本,因此被认为是父亲的过程.然后,父亲在孩子仍在奔跑时自杀.猜猜当您做这样的事情时会发生什么?孩子附着在初始化过程中.因此,即使您注销,脚本仍
20 2024-04-23
编程技术问答社区
在同一命令中组合多个正则表达式
如何在一个命令中分组两个正则表达式 示例是否有: 的文件 age22 Helwan University Engineering Faculty ITI-intake33 bye FOr NOW i am mahmoud 34 mie 4 a ,我想搜索以w的开始和结尾的行 使用 grep 命令 解决方案 您不需要多个正则表达式. grep '^by.*W$' filename.txt 就足够了.
14 2024-04-23
编程技术问答社区
将向量声明为类成员
我在标题文件中有简单的类: a.hh #ifndef a_hh #define a_hh class a { public: int i; a() { i = 0; } }; #endif 然后我有一个文件: b.cc #include #include "a.hh" using namespace std; int main(int argc, char** argv) { a obj; obj.i = 10; cout 到这一点,一切都很好. 我编译了代码,并编译了正常. 但是,一旦我在班级中添加一个向量: #ifndef a_hh #define a_hh class a { public: int i; vector x; a()
22 2024-04-23
编程技术问答社区
与 BSD''tail -n100' 相对应的 Solaris 功能是什么?
我一直在看一千次,我总是忘记它,所以,在这里为永恒: solaris对tail的语法有些尴尬. 我该如何处理BSD的tail -nN? 我想要的是尾部输入的最后N行. 解决方案 只需删除" N" tail -100 其他解决方案 或您可以使用: /usr/xpg4/bin/tail 的确表现得像您想要(tail -nN). XPG4 = XOPEN可移植性指南第4期,包含二进制文件严格符合多个POSIX和其他标准.与前者的差异通常是支持和行为的详细信息. 根据您的发行版,还有/usr/xpg6/bin,/usr/openwin/bin(openwindows命令),/usr/dt/bin(cde桌面命令),/usr/usr/sfw/bin(Solaris Freeware(Solaris Freeware) )和其他各种. 例如,Solaris Express正在介绍/usr/gnu/bin,以提供GNU二进制文件的自定义
26 2024-04-23
编程技术问答社区
Solaris 上的哪个进程正在监听某个端口?
因此,我登录一个Solaris框,尝试启动Apache,并发现端口80上已经有一个过程,而不是Apache.我们的盒子没有安装LSOF,所以我无法对此进行查询.我想我可以做: pfiles `ls /proc` | less 并寻找"端口:80",但是如果有人有更好的解决方案,我全都是耳朵!如果我可以在不扎根的情况下寻找聆听过程,甚至更好.我对Shell和C解决方案开放.我不介意有一些自定义可执行文件可以在下次出现时随身携带. 更新:我说的是我不是管理员的通用安装Solaris(尽管我确实具有SuperuSer访问权限),因此从免费软件磁盘中安装内容不是一个选择.显然,对定影,NetStat或其他工具都不使用Linux特定的扩展.到目前为止,在上运行所有过程似乎是最好的解决方案.如果仍然如此,我可能会以上面剪辑的效率更有效的代码发布答案. 解决方案 我在某个地方找到了这个脚本.我不记得在哪里,但对我有用: #!/bin/ksh line='--------
14 2024-04-23
编程技术问答社区
读取系统调用返回零字节,尽管套接字已准备好读取
我在C中使用unix域插座的客户端服务器应用程序. 这里的服务器正在读取客户端的整数.客户端成功将4个字节发送到服务器. 但是在服务器端,我可以看到读取的系统调用是从插座读取0个字节. 我几乎可以确定数据可在服务器上读取,因为在读取操作成功之前选择调用. 知道为什么会发生这种情况? 解决方案 没有任何代码,很难猜测到底发生了什么,但是select()成功并不一定意味着某些数据已准备就绪. select()只需保证,如果您尝试一个从此文件 - 描述器中读取,您将不会被阻止. 原因可能是其中的任何一个: 内核存储在内部缓冲区中的某些数据要通过您阅读的文件描述符传递(这是您在这里期望的), 或文件 - 描述器的另一端已关闭,那么将永远不会传递新数据(您观察到的EOF), 或文件 - 描述符处于无效状态,用于读取操作,任何读取尝试都会立即失败(请参见errno读取).
18 2024-04-23
编程技术问答社区
recvfrom 重新读取套接字上的数据
我正在创建一个简单的服务器/客户端UDP套接字程序,并且遇到了一个问题. 问题是recvFrom()函数继续重新阅读发送的最后数据. 因此,如果我将两个数据包从客户端发送到服务器,则recvFrom()将读取第一个数据包并打印其数据,然后它会一遍又一遍地读取第二个数据包. 据我了解,一旦执行成功的读取操作,应将数据包从插座上删除,但这似乎并没有发生. 我知道客户端没有重新列入数据,因为每当客户发送数据时都会编写控制台输出. 这是发件人的功能 int sendPacket(int socketFd, int type, char *typeString, char *data, int seq, int windowSize, struct sockaddr_in serverName) { struct packet *sendPacketPtr, sendPacket; fd_set writeFdSet; sen
36 2024-04-23
编程技术问答社区
如何确定 UNIX 套接字读取()完毕?
我一直在阅读读(2)的人页面,根据人页面,读取(2)的返回值为-1 on错误,eof上的0,字节数读数为0,> 0> 0 . 我该如何确定何时在客户端完成(2)完成? 我问是因为我正在编写服务器和客户端来测试它,但是当我第一次阅读(2)时,请循环检查更多信息,请阅读(2)块,然后等待另一个写入(2)来自客户端(这不到来,因为我的客户只有一个写(2)). 如果我只是错过了一些简单的东西,有人可以将其指出或指出我的好参考吗? 解决方案 客户端完成后需要关闭套接字.客户端关闭插座后,服务器将收到EOF消息.如果客户端将套接字打开但从未写入插座,则服务器将永远等待另一个消息. 其他解决方案 您知道当read返回时完成: -1-发生错误 0- eof 另一个非零值 - 这是最常见的情况.您的协议需要使用A 标题指定消息大小或固定长度消息来指定其消息的大小.然后,您可以跟踪读取的字节数量,并且一旦阅读了很多字节,就知道您已经完成了.否则,您需要继续阅读字节
34 2024-04-23
编程技术问答社区
htons 和 htonl 的区别
我正在学习简单的插座程序,并遇到了这些程序, 我想知道Htons和Htonl,甚至NTOHS和 ntohl. 解决方案 htons 网络短 主机 ntohs 网络托管短 htonl 主机网络长 ntohl 网络托管长 长为32位.短是16位.
18 2024-04-23
编程技术问答社区
从 Unix 套接字读取数据时,为什么用 netcat 发送 ^D 不会触发 EOF?
我正在尝试编写将从UNIX插座读取的服务器: use std::io::prelude::*; use std::os::unix::net::{UnixListener, UnixStream}; fn main() { let socket_name = "socket"; let listener = match UnixListener::bind(&socket_name) { Err(err) => panic!("Failed to bind to socket: {}.", err), Ok(stream) => stream, }; for mut stream in listener.incoming() { match stream { Ok(ref mut stream) => { let msg = read(str
22 2024-04-23
编程技术问答社区
以 SOCK_RAW 作为套接字类型的 AF_INET 与以 SOCK_DGRAM 和 SOCK_RAW 作为套接字类型的 AF_PACKET 之间的冲突
我是网络编程的新手,并且已经试图将我的头缠住了很长时间.通过互联网经历了许多资源后,我得出了以下结论,并遵循了困惑. 结论1: 当我们谈论创建一个套接字为: s = socket(AF_INET, SOCK_RAW, 0); 我们基本上是在尝试创建一个原始插座.通过以这种方式创建的原始套接字,人们将能够绕过OSI堆栈中的TCP/UDP层.意思是,当应用程序通过此套接字接收到数据包时,应用程序将包含包含网络层(第3层)的数据包包裹2层标题包装实际数据.因此,该应用程序可以免费处理此数据包(无论如何). 同样,当通过此套接字发送数据包时,该应用程序可以免费处理数据包创建直到第4层,然后将其传递给第3层,从该点上,内核上可以处理事物. 结论2:当我们谈论创建套接字为: 时 s = socket(AF_PACKET, SOCK_RAW, 0); 我们再次尝试创建一个原始套接字.通过以这种方式创建的原始插座,人们将能够完全绕过OSI的所有层. 用户土地应用程序将
48 2024-04-23
编程技术问答社区
调用 bind() 时 AF_UNIX 套接字的适当长度
bind bind bind ()需要一段时间给它. 现在,对于UNIX插座, sockaddr_un> P> 当您填写sun_path成员时,如何计算此长度的正确方法是什么?我看过多种方法: socklen_t len = sizeof(sockaddr_un); socklen_t len = offsetof(sockaddr_un,sun_path) + strlen(addr.sun_path); socklen_t len = offsetof(sockaddr_un,sun_path) + strlen(addr.sun_path) + 1; socklen_t len = sizeof(sockaddr.sun_family ) + strlen(addr.sun_path); 甚至其他方法.可以选择尺寸(sockaddr_un)吗? 是什么? 解决方案 sizeof(struct sockaddr_un)很好. 看一下manpage uni
18 2024-04-23
编程技术问答社区