有人可以幫我嗎?我有一堆文本檔案,我想更改它們。它們都以除普通字母字符外的其他內容開頭。我現在想洗掉字母字符出現之前的所有內容,以便它們以標題開頭,保持其他所有內容不變。
這是一個例子:
=================================================================================
TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998
我希望它看起來像這樣
TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998
我試著這樣做:
for f in *.txt; do sed 's/^.*[a-zA-Z]/^.[a-zA-Z]/g'; done
它不作業
我對此很陌生,所以請多多包涵。
最好的史蒂夫
uj5u.com熱心網友回復:
使用sed
$ sed 'N;N;s/\("\).*\n\([[:alpha:]]\ \)/\1\2/' input_file
"TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998"
或者
$ sed ':a;N;s/\("\)[^[:alpha:]]*\n\([[:alpha:]]\)/\1\2/;ba' input_file
"TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998"
uj5u.com熱心網友回復:
Perl 在這里很方便:
perl -0777 -i -pe 's/^[^[:alpha:]] //s' file ...
-0777 選項使 perl 將整個檔案放入默認變數中,
并且 s/// 命令洗掉所有前導非字母字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473810.html
下一篇:如何通過消除回圈來優化我的代碼?
