2

次のような単語のリストを含むファイルがあります。

FIRST_WORD abc
FIRST_WORD(1) bcd
FIRST_WORD(2) def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD(1) lom
...

(i)を取得するために、存在する場合は削除したいと思います。

FIRST_WORD abc
FIRST_WORD bcd
FIRST_WORD def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD lom
...
4

5 に答える 5

15

がんばって:

test="123456"
echo ${test:3}

出力:

456
于 2013-01-07T10:43:47.927 に答える
3

を使用して、括弧内にあるすべての数字文字列をグローバルに置換しますsed

$ sed 's/([0-9]\+)//g' file
FIRST_WORD abc
FIRST_WORD bcd
FIRST_WORD def
SECOND_WORD gh
THIRD_WORD jiu
THIRD_WORD lom

# Save the changes back to the file  
$ sed -i 's/([0-9]\+)//g' file

を使用して最初の 3 文字を削除しsedます。

$ sed 's/^...//' file
ST_WORD abc
ST_WORD(1) bcd
ST_WORD(2) def
OND_WORD gh
RD_WORD jiu
RD_WORD(1) lom
于 2013-01-07T10:46:45.037 に答える
3

これを試して。

sed 's/([0-9])//g' file
于 2013-01-07T10:47:01.607 に答える
2

これはうまくいくかもしれません(GNU sed):

sed -r '$!N;s/^((\S+).*\n\2)\([^)]*\)/\1/;P;D' file

ただし、次の場合はやり過ぎかもしれません。

sed 's/([0-9]\+)//' file

で十分です。

于 2013-01-07T12:31:54.407 に答える
1

以下は、純粋な bash の実装です。

while read -r a b; do
    echo "${a%(*)}" "$b"
done < input.txt
于 2013-01-09T14:45:48.117 に答える