2

最初と最後の位置を使用して行から部分文字列を抽出する必要があります。grepで簡単にできると思いますが、まだ方法がわかりません。

例、n 文字の行、その行の k 位置から l 位置で終わる部分文字列を抽出したい。

明らかに l で、k < n および l > k

4

5 に答える 5

4

awkを使用しないのはなぜですか?

echo "12345678" | awk '{print substr($0, 3, 2);}'
# prints '34'
于 2013-09-01T20:34:17.430 に答える
2

bash を使用している場合は、次のようにできます。

LINE="strings"
K=3  ## 4th character starting from index 0
L=5  ## 6th character starting from index 0
echo "${LINE:K:L - K + 1}"

ファイルのループ:

while -r read LINE; do echo "${LINE:K - 1:L - K}"; done < file

awk ベースについては、L は長さではなく位置を意味し、0 は開始インデックスです。

awk -v k="3" -v l="5" '{ n = length; print substr($0, k, l - k + 1);}' < file
于 2013-09-01T20:38:22.943 に答える
1

使用:

k=3
echo '123456789' | sed 's/^.\{'$k'\}//'

出力:

456789
于 2013-09-01T23:41:09.073 に答える
-1

これはあなたが探しているものですか?

    String test = "ateststring";
    String testa = test.substring(0,4);
    String test2 = testa.substring(0,3);
    int testc = test.indexOf("test");
    String test3 = test.substring(testc,5);

    System.out.println(test + ":" + testa + ":" + test2 + ":" +test3);
于 2013-09-01T20:36:12.720 に答える