小编ste*_*anB的帖子

如何在Bash中的分隔符上拆分字符串?

我把这个字符串存储在一个变量中:

IN="bla@some.com;john@home.com"
Run Code Online (Sandbox Code Playgroud)

现在我想通过;分隔符拆分字符串,以便我有:

ADDR1="bla@some.com"
ADDR2="john@home.com"
Run Code Online (Sandbox Code Playgroud)

我不一定需要ADDR1ADDR2变量.如果它们是阵列的元素甚至更好.


根据以下答案的建议,我最终得到了以下内容,这就是我所追求的:

#!/usr/bin/env bash

IN="bla@some.com;john@home.com"

mails=$(echo $IN | tr ";" "\n")

for addr in $mails
do
    echo "> [$addr]"
done
Run Code Online (Sandbox Code Playgroud)

输出:

> [bla@some.com]
> [john@home.com]
Run Code Online (Sandbox Code Playgroud)

有一个涉及设置Internal_field_separator(IFS)的解决方案;.我不确定该答案发生了什么,你如何重置IFS为默认值?

RE:IFS解决方案,我试过这个并且它可以工作,我保持旧的IFS然后恢复它:

IN="bla@some.com;john@home.com"

OIFS=$IFS
IFS=';'
mails2=$IN
for x in $mails2
do
    echo "> [$x]"
done

IFS=$OIFS
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我试过的时候

mails2=($IN)
Run Code Online (Sandbox Code Playgroud)

我只是在循环打印时得到第一个字符串,没有括号围绕$IN它工作.

bash shell scripting split

1885
推荐指数
22
解决办法
204万
查看次数

在Java中将字符串数组转换为字符串

我想要Java代码将字符串数组转换为字符串.

java arrays string

218
推荐指数
7
解决办法
55万
查看次数

如何使用Git?

我是一名工科学生,他大部分业余时间都在看电视而不是编码.所以基本上我对任何一种版本控制系统都没有经验.我的理解是以某种方式使项目分配更容易.

我正在研究Blueprint CSS Framework,喜欢它并从他们的Git项目页面下载.现在,我知道Git不仅仅是在他们的网站上提供链接.所以我的问题如下:

  • 如何正确使用Git以保持我的Blueprint下载更新?说有新版本,我该怎么办?
  • 我可以同时更新所有Git下载吗?假设我在Mac上下载了Blueprint和其他项目,我该如何有效地更新它们?

我查看了Git指南,但这主要是针对那些拥有比我更多经验的人.

感谢帮助 :)

git

119
推荐指数
5
解决办法
14万
查看次数

如何检测Vimscript中是否存在特定文件?

我正在Vimscript中寻找一种优雅的方法来检查函数中当前目录中是否存在文件.

我想出了这个,但不确定这是否是最优雅的解决方案(我将设置vim选项,如果它存在) - 是否有任何方法不必再进行文件名的比较 - 可能使用不同的__CODE__内置函数( ?):

:function! SomeCheck()
:   if findfile("SpecificFile", ".") == "SpecificFile"
:       echo "SpecificFile exists"
:   endif
:endfunction
Run Code Online (Sandbox Code Playgroud)

vim file-exists

94
推荐指数
4
解决办法
3万
查看次数

如何在iPhone上画线?

我是iPhone编程的初学者,并希望在手机屏幕上绘制一条线,以便使用Quartz和UIKit进行学习.

我该如何开始绘画?

iphone cocoa-touch quartz-graphics

43
推荐指数
1
解决办法
5万
查看次数

我需要-D_REENTRANT和-pthreads吗?

在Linux(内核2.6.5)上,我们的构建系统调用gcc -D_REENTRANT.

使用时仍然需要这个pthreads吗?

它与gcc -pthread选项有什么关系?我知道我应该使用-pthreadpthreads,我还需要-D_REENTRANT吗?

另外,你知道在gcc 3.3.3和gcc 4.xx之间使用REENTRANT之间有什么区别吗?

当我使用-pthreadgcc选项时,我可以看到它_REENTRANT被定义了.-D_REENTRANT从命令行省略会有什么不同,例如,某些对象可以在没有多线程支持的情况下编译,然后链接到使用pthreads的二进制文件并导致问题吗?

我认为应该可以使用: g++ -pthread

> echo | g++          -E -dM -c - > singlethreaded
> echo | g++ -pthread -E -dM -c - > multithreaded
> diff singlethreaded multithreaded
39a40
> #define _REENTRANT 1
Run Code Online (Sandbox Code Playgroud)

我们正在编译多个静态库和与静态库链接的应用程序,库和应用程序都使用pthread.

我相信它在过去的某个阶段是必需的,但想知道它是否仍然需要.谷歌搜索没有返回任何最近提到的信息 - D_REENTRANTpthreads.你能指点我讨论在最近版本的kernel/gcc/pthread中使用的链接或引用吗?

澄清:目前我们正在使用-D_REENTRANT和-lpthread,我假设我可以用g ++ -pthread替换它们,看看man gcc它为预处理器和链接器设置了标志.有什么想法吗?

linux gcc pthreads

39
推荐指数
3
解决办法
3万
查看次数

iPhone:将日期字符串转换为相对时间戳

我有一个时间戳作为字符串,如:

星期四,2009年5月21日19:10:09 -0700

而且我想将它转换为像'20分钟前'或'3天前'的相对时间戳.

使用Objective-C为iPhone做到这一点的最佳方法是什么?

iphone time cocoa datetime objective-c

39
推荐指数
5
解决办法
4万
查看次数

如何解决'无法识别的选择器发送到实例'?

在AppDelegate中,我正在分配静态库中定义的实例.此实例的NSString属性设置为"copy".当我访问此实例上的字符串属性时,应用程序崩溃,"无法识别的选择器发送到实例".Xcode为属性提供代码提示,这意味着它在调用应用程序中是已知的.特定类被编译到静态库目标中.我错过了什么?

添加一些代码.

//static library 
//ClassA.h
@interface ClassA : NSObject {
...
NSString *downloadUrl;
}
@property(nonatomic, copy) NSString *downloadUrl;

//ClassA.m
@synthesize downloadUrl;
Run Code Online (Sandbox Code Playgroud)

在调用应用程序的appDelegate中.

//app delegate header file
@interface myApp : NSObject <UIApplicationDelegate> {
ClassA *classA;
}
@property (nonatomic, retain) ClassA *classA;

//app delegate .m file
@synthesize classA;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
classA = [[ClassA alloc] init];
//exception occurs here.  downloadUrl is of type NSCFNumber
classA.downloadUrl = @"http://www.abc.com/";
...}
Run Code Online (Sandbox Code Playgroud)

应用程序中的其他类将获得对委托的引用并调用classA.downloadUrl.

iphone cocoa-touch memory-management objective-c static-libraries

36
推荐指数
3
解决办法
18万
查看次数

如何将字符插入NSString

如何向NSString插入空格.

我需要在索引5处添加一个空格:

NString * dir = @"abcdefghijklmno";
Run Code Online (Sandbox Code Playgroud)

要获得此结果:

abcde fghijklmno
Run Code Online (Sandbox Code Playgroud)

有:

NSLOG (@"%@", dir);
Run Code Online (Sandbox Code Playgroud)

objective-c nsstring ios5

34
推荐指数
1
解决办法
5万
查看次数

功能模板专业化格式

以下函数模板中第二个括号<>的原因是什么:

template<> void doh::operator()<>(int i)
Run Code Online (Sandbox Code Playgroud)

这出现在SO问题中,有人提出之后有一些括号丢失operator(),但是我找不到解释.

如果它是表单的类型特化(完全特化),我理解其含义:

template< typename A > struct AA {};
template<> struct AA<int> {};         // hope this is correct, specialize for int
Run Code Online (Sandbox Code Playgroud)

但是对于功能模板:

template< typename A > void f( A );
template< typename A > void f( A* ); // overload of the above for pointers
template<> void f<int>(int);         // full specialization for int
Run Code Online (Sandbox Code Playgroud)

这适合这种情况?:

template<> void doh::operator()<>(bool b) {}
Run Code Online (Sandbox Code Playgroud)

示例代码似乎有效并且没有给出任何警告/错误(使用gcc 3.3.3):

#include <iostream>
using namespace std;

struct doh
{
    void operator()(bool …
Run Code Online (Sandbox Code Playgroud)

c++ syntax templates template-specialization

30
推荐指数
1
解决办法
3万
查看次数