Questions tagged «unix»

此标记专用于与Unix直接相关的PROGRAMMING问题;常规软件问题应直接到Unix&Linux Stack Exchange网站或超级用户。Unix操作系统是由Bell Labs在1960年代后期开发的通用操作系统,目前存在各种版本。


5
如何交错两个文本文件中的行
交错两个(或更多)文本文件的行的最简单/最快的方法是什么?例: 文件1: line1.1 line1.2 line1.3 档案2: line2.1 line2.2 line2.3 交错式: line1.1 line2.1 line1.2 line2.2 line1.3 line2.3 当然,编写一个可以同时打开它们和执行任务的Perl脚本很容易。但是我想知道是否有可能用更少的代码摆脱困境,也许是使用Unix工具的单一代码?
77 linux  unix  command 

9
Unix命令行上的简洁便携式“连接”
如何将多行合并为一行,并在换行符所在的位置使用分隔符,并避免尾随分隔符,并且可以选择忽略空行? 例。考虑一个foo.txt带有三行的文本文件: foo bar baz 所需的输出是: foo,bar,baz 我现在使用的命令: tr '\n' ',' <foo.txt |sed 's/,$//g' 理想情况是这样的: cat foo.txt |join , 什么是: 最便携,简洁,易读的方式。 使用非标准unix工具的最简洁方法。 我当然可以写点东西,或者只使用别名。但是我很想知道这些选项。
77 shell  unix 

3
“ fork()”之后的printf异常
操作系统:Linux,语言:纯C 我正在学习一般的C编程,在特殊情况下学习UNIX下的C编程。 printf()使用fork()调用后,我检测到该函数的奇怪行为(对我而言)。 码 #include <stdio.h> #include <system.h> int main() { int pid; printf( "Hello, my pid is %d", getpid() ); pid = fork(); if( pid == 0 ) { printf( "\nI was forked! :D" ); sleep( 3 ); } else { waitpid( pid, NULL, 0 ); printf( "\n%d was …
77 c  linux  unix  printf  fork 

16
“在ruby中”:检查程序在$ PATH中是否存在于ruby中
我的脚本在很大程度上依赖于外部程序和脚本。我需要确保我需要调用的程序存在。手动地,我会在命令行中使用“哪个”来检查。 是否有等同File.exists?于$PATH? (是的,我想我可以解析 %x[which scriptINeedToRun]但这不是超级优雅。 谢谢!扬尼克 更新:这是我保留的解决方案: def command?(command) system("which #{ command} > /dev/null 2>&1") end 更新2:一些新的答案出现了-至少其中一些提供了更好的解决方案。 更新3:ptools gem向File类添加了一个“ which”方法。
76 ruby  unix  path 


14
在unix shell中生成一个随机文件名
我想在unix shell中生成一个随机文件名(例如tcshell)。文件名应包含随机的32个十六进制字母,例如: c7fdfc8f409c548a10a0a89a791417c5 (我将在其中添加必要的内容)。关键是只能在外壳中执行此操作,而无需诉诸程序。
76 unix  shell  random  tcsh 

8
在以下位置后卷曲以获取远程文件名
使用curl下载文件时,如何跟踪链接位置并将其用作输出文件名(而无需事先知道远程文件名)? 例如,如果单击下面的链接,则将下载文件名“ pythoncomplete.vim”。但是,使用curl的-O和-L选项,文件名只是原始的远程名称,笨拙的“ download_script.php?src_id = 10872”。 curl -O -L http://www.vim.org/scripts/download_script.php?src_id=10872 为了下载具有正确文件名的文件,您必须事先知道文件名: curl -o pythoncomplete.vim -L http://www.vim.org/scripts/download_script.php?src_id=10872 如果您可以在不事先知道名称的情况下下载文件,那将是很好的选择;如果不知道,是否还有另一种方法可以通过命令行快速下拉重定向的文件?

5
Mac上的核心转储写在哪里?
在Mac OS X上,如果我将SIGQUIT发送到C程序,它将终止,但是没有核心转储文件。 您是否必须在Mac OS X上手动启用核心转储(如何?),或者将其写入其他位置而不是工作目录?
75 macos  unix  signals  coredump 


17
Windows命令转换Unix行尾?
是否有Windows命令来转换文件的行尾? 我们test.bat需要运行一个启动服务器。我们使用Perforce,我们需要在工作区中使用unix行尾。由于某些原因,我们不允许在工作区中将行尾更改为Windows。但是,服务器在Windows上运行。 每次必须运行bat文件时,都在Notepad ++中打开它,然后选择“编辑”→“终止转换”→“ Windows”。有没有一种自动化的方法,这样我们每次与Perforce同步时都不需要手动更改行尾? 提前致谢。
75 windows  unix  batch-file  cmd  eol 

12
如何在Python中从NIC获取IP地址?
在Unix上的Python脚本中发生错误时,将发送一封电子邮件。 如果IP地址是测试服务器192.168.100.37,我被要求在电子邮件的主题行中添加{Testing Environment}。这样,我们就可以拥有一个脚本版本,并可以判断电子邮件是否来自测试服务器上混乱的数据。 但是,当我在Google上搜索时,我会不断找到以下代码: import socket socket.gethostbyname(socket.gethostname()) 但是,这给了我127.0.1.1的IP地址。当我使用ifconfig我得到这个 eth0 Link encap:Ethernet HWaddr 00:1c:c4:2c:c8:3e inet addr:192.168.100.37 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:75760697 errors:0 dropped:411180 overruns:0 frame:0 TX packets:23166399 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:59525958247 (59.5 GB) TX bytes:10142130096 (10.1 GB) Interrupt:19 Memory:f0500000-f0520000 lo Link encap:Local …
75 python  unix  networking  nic 

10
用于创建“漂亮”目录树的ASCII库?
是否有一些* nix工具或perl / php库,可让您轻松创建类似于以下内容的目录树可视化效果? www |-- private | |-- app | | |-- php | | | |-- classes | | | +-- scripts | | |-- settings | | +-- sql | +-- lib | +-- ZendFramework-HEAD +-- public |-- css |-- images +-- scripts
75 php  unix  tree  ascii 

13
如何将单元测试引入大型的(C / C ++)代码库中?
我们有一个大型的,用C语言编写的多平台应用程序(使用的C ++数量很少,但数量在不断增长)。随着多年来的发展,它具有许多您希望在大型C / C ++应用程序中使用的功能: #ifdef 地狱 大文件使得难以隔离可测试代码 功能太复杂而无法轻松测试 由于此代码是针对嵌入式设备的,因此在实际目标上运行它会产生大量开销。因此,我们希望在本地系统上快速完成更多的开发和测试。但是,我们希望避免采用经典策略“将文件复制/粘贴到系统上的.c文件中,修复错误,然后复制/粘贴回”。如果开发人员要麻烦这样做,我们希望以后能够重新创建相同的测试,并以自动化的方式运行。 这是我们的问题:为了将代码重构为更具模块化,我们需要使其更具可测试性。但是,为了引入自动化的单元测试,我们需要使其更具模块化。 一个问题是,由于我们的文件太大,因此我们可能在文件中包含一个函数,该函数在同一文件中调用一个函数,因此需要对它进行存根以进行良好的单元测试。随着我们的代码变得更加模块化,似乎这将不再是问题,但这还有很长的路要走。 我们考虑做的一件事是用注释标记“已知是可测试的”源代码。然后,我们可以编写脚本扫描源文件以获取可测试的代码,将其编译为单独的文件,然后将其与单元测试链接。我们可以在修复缺陷和添加更多功能时慢慢介绍单元测试。 但是,令人担忧的是,维护此方案(以及所有必需的桩函数)将变得很麻烦,并且开发人员将停止维护单元测试。因此,另一种方法是使用一种工具,该工具会自动为所有代码生成存根,并将其与文件链接。(我们发现唯一可以执行此操作的工具是昂贵的商业产品),但是这种方法似乎要求我们所有的代码在开始之前都必须更加模块化,因为只能进行外部调用。 就个人而言,我希望开发人员考虑其外部依赖关系并智能地编写自己的存根。但是,如果将所有依赖项存根为一个严重过度增长的10,000行文件,可能会不堪重负。可能很难说服开发人员他们需要维护所有外部依赖项的存根,但这是正确的方法吗?(我听到的另一个论点是子系统的维护者应维护其子系统的存根。但是我想知道是否“强迫”开发人员编写自己的存根会导致更好的单元测试?) 的#ifdefs,当然,再添全尺寸的问题。 我们已经研究了几种基于C / C ++的单元测试框架,并且有很多看起来不错的选项。但是我们还没有发现任何简化从“没有单元测试的代码圈”到“可单元测试的代码”的过渡的方法。 因此,这是我对遇到过此问题的其他人的疑问: 一个好的起点是什么?我们是朝着正确的方向前进,还是缺少明显的东西? 哪些工具可能有助于过渡?(最好是免费/开源,因为我们目前的预算大约为“零”) 注意,我们的构建环境是基于Linux / UNIX的,因此我们不能使用任何仅Windows的工具。
74 c++  c  unit-testing  unix  legacy 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.