0

私はファイルを持っています

**data2.l**
I have a car 
its nissan GTR 
this car is super fast

このファイルから「車」という単語を削除したい場合は、

perl -p -i -e "s/car//ig" data2.l

しかし、「car」を保持し、「car」以外のすべての用語を削除したい場合は、「car」だけを抽出しようとすると、「car」を含む完全な行を抽出できます。

**example O/P**
car
car

では、このワンライナーを少し変更して、このタスクを実行できますか?

4

3 に答える 3

3

「car」という単語が各行に複数回出現する場合、これは文字通り両方の時間を印刷し、改行を追加します。

grep -io "car" file.txt

入力:

i have a car 
its nissan GTR 
this car is super fast Car

出力:

car
car
Car

アップデート:

grep -ioP "car[^ ]*" file.txt

入力:

i have a car 
its nissan GTR 
this car123 is super fast Car

出力:

car
car123
Car
于 2012-09-19T02:36:24.763 に答える
2

このPerlは似たようなことをしますが、同じ行のすべての「車」は同じ行にとどまります。

  perl -lne 'print join " ", /car\S*/ig if /car/i'

steveの例から次の出力を取得します。

car
car123 Car
于 2012-09-19T02:46:40.580 に答える
0

私はこれを楽しんだ。これらのオプションはすべて、ファイル内で複数回発生した場合でも、車を1回だけ印刷します。

more data2.1 | grep -q 'car' && echo 'car'

more dara2.1 | sed -n 'h;N;$x;$s/.*car.*/car/p'

perl -ne '$i=1 if ~~/car/}{print "car\n" if $i' data2.1
于 2012-09-19T12:54:23.770 に答える