다음을 사용하여 줄 시작 부분에서 숫자를 제거하려고합니다.
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