我有一个这样的字符串:
public interface MyInterface {
}
public class Test implements MyInterface{
public static void main(String[] args) {
MyInterface object = new MyInterface(); // Error Here "Cannot instantiate the type MyInterface" Its a right Error ...!
}
我希望使用awk将此字符串与tony x25 xdata engineer Xhome
或x
分开,
X
但结果是这样的:
awk '{FS="[xX]"} {for(i=1;i<=NF;i++) print $i}' 1
似乎仍然使用空格的默认字段分隔符,如何不使用默认字段分隔符但只使用字符tony
x25
xdata
engineer
Xhome
或x
?
答案 0 :(得分:4)
将您的代码更改为:
return
或
awk 'BEGIN{FS="[xX]"} {for.....
如果你没有将 awk -F"[xX]" '{for(....
放在FS
块中,当awk获得第一行时,会使用默认的BEGIN
,这就是你在问题中得到输出的原因。但是,在第一行之后,FS
由FS
设置,即从文件的第二行开始,字段将由[Xx]
分隔。不幸的是,您的输入示例只有一行。您可以添加更多行进行测试。
答案 1 :(得分:1)
您应该使用记录分隔符RS
而不是字段separotor FS
:
$ awk -v RS='[Xx]' 1 <<< "tony x25 xdata engineer Xhome"
tony
25
data engineer
home
将RS
设置为正则表达式[Xx]
可以将字符串切成碎片。使用输出记录分隔符ORS
打印这些分隔符,默认设置为\n
。