sedまたはtr 1行のすべての数値を削除

sedまたはtr 1行のすべての数値を削除

だから私は主に英数字のテキストファイルを持っています。標準文書です。ところでPDFからコピーして貼り付けたのでページ番号があります。ページ以外の数字が時々現れるのはあまり気にしないので、使い切ったり消したりするつもりsedですtr。結局のところ、これはGUIで最初の0、1、2などを見つけて置き換えるよりも少し高速です。

ではどうすればいいですか?

ベストアンサー1

すべての数字を削除するにはいくつかの方法があります。

tr -d 0-9 <old.txt >new.txt
tr -d '[:digit:]' <old.txt >new.txt
sed -e 's/[0-9]//g' <old.txt >new.txt

ページ番号のみを削除したい場合は、より良い正規表現を使用してページ番号の対応する番号を識別できます。たとえば、ページ番号がスペースを除いて常に1行にある場合、次のコマンドはスペースで囲まれた数だけを含む行のみを削除します。

sed -e '/^ *[0-9]\+ *$/d' <old.txt >new.txt

\+GNU拡張です。一部のsed実装では、より長い標準的な選択肢が必要な場合があります。\{1,\}または使用[0-9][0-9]*)。

ただし、これにコマンドラインを使用する必要はありません。ある程度の有能な編集者は、正規表現検索と置換機能を備えています。

おすすめ記事