在输出的每行中的特定列之间选择文本

时间:2016-12-23 01:39:55

标签: android bash output cut

我的输出类似于:

xxxxxxxxxFOOxxxxxxxxxxxx
blablabl BAR lablblablaa
=========tst============

我能做些什么呢?

FOO
BAR
tst

我应该使用哪个命令只显示所有行中特定列之间的文本?

cut -d将不起作用,因为它在每一行都不是相同的分隔符..

PS:它在Android上很少有命令错过..

这是帮助......

3 个答案:

答案 0 :(得分:1)

  

cut -d将不起作用,因为它在每一行都不是相同的分隔符..

是,但cut -c10-12完成工作,只提取每行的第10,11和12个字符。您没有提供较长行的示例,因此在这种情况下您不想清楚要做什么。

答案 1 :(得分:0)

String[] str = {"xxxxxxxxxFOOxxxxxxxxxxxx",
                "blablabl BAR lablblablaa",
                "=========tst============"};

for (String s : str) {
  int half = s.length() / 2;
  String cutted = s.substring(half - 3, half);
  // or String cutted = s.substring(9, 12);
  // => FOO, BAR, tst
}

答案 2 :(得分:0)

使用这样的简单方法:

private static String selectBetween(String input, int numberOfCharacters) {
    int startIndex = (input.length() - numberOfCharacters) / 2;
    return input.substring(startIndex, startIndex + numberOfCharacters);
}

然后你就这样称呼:String output = selectBetween("123123ABC123123", 3);// output will be ABC