以下を使用して、行の先頭から数字を削除しようとしています。
sed -i 's/^\d*\t//' sea_news_2020_corpus.txt
行は次のとおりです。
809940 The sea will be moderate in the Arabian Gulf and slight to moderate in Oman.
なぜこれがうまくいかないのですか?長い間頑張りました
答え1
Sedは数値を表す\ dを理解していません。これを行うには、[0-9]以上を正しく使用してください。 [[:digit:]]
sed -i 's/^[0-9]*\t//' yourfile
編集する:
- sedは普遍的に理解されていません\ t。 POSIXはこれを義務付けていません。したがって、シェル変数を使用するか、ksh $ '\ t'からインスピレーションを得た設定を使用して、エスケープされたTABを挿入します。
- Macでは、内部編集には引数の後に-iが続きますが、GNUはここで許可されています。 Posixでは、-iは必須ではありません。
sed -i"" -e $'s/^[[:digit:]]*\t//' input_file
TAB=$(echo x | tr x '\011')
# or $(printf '\t')
sed -i"" -e "s/^[[:digit:]]*$TAB//" input _file