web-dev-qa-db-ja.com

テキストファイルの各行の最初の部分を削除します

次のような複数の行があるテキストファイルを編集しようとしています。

avaya logs 20171202 000000 (9).txt: 660119211mS CMLOGGING: CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0

すべての行でCALLと表示される前にすべてを削除します。
sedコマンドでこれを実行できると思いますが、あまり詳しくありません。
これどうやってするの?

3
Incog Nito

awkは次の方法で使用できます。

awk -F "CALL" '{print "CALL"$2}' filename 

結果は次のとおりです。

CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0

詳細:

  1. -Fまたは--field-separatorフラグを使用し、CALLをフィールドセパレーターに設定します。
  2. 文字列「CALL」に続いて
  3. 行の2番目の要素(CALLがセパレータの場合)

注:次を使用して、出力を別のファイルにリダイレクトできます。

awk -F "CALL" '{print "CALL"$2}' filename > newfilename

5
Yaron

Sedを使用:

sed -e 's/.*CALL:/CALL:/' input.txt > output.txt

入力ファイルをその場で編集する場合は、-iオプションを追加します。

1
David Foerster