ファイル内の行番号を知っていますが、最初の単語を保持し、残りを行末まで削除したいと考えています。sed を使用してこれを行うにはどうすればよいですか? たとえば、次のようなファイルの 10 行目に移動するとします。
良い言葉「何とか」\
そして私が欲しいのは
良い言葉です
私はこれを試しました- sed 's/([az] )。/\1/'
しかし、これはファイル内のすべての行でそれを行います。指定した1行だけにしたい。
ファイル内の行番号を知っていますが、最初の単語を保持し、残りを行末まで削除したいと考えています。sed を使用してこれを行うにはどうすればよいですか? たとえば、次のようなファイルの 10 行目に移動するとします。
良い言葉「何とか」\
そして私が欲しいのは
良い言葉です
私はこれを試しました- sed 's/([az] )。/\1/'
しかし、これはファイル内のすべての行でそれを行います。指定した1行だけにしたい。
grep または awk を使用して 1 行だけを取得し、それを sed にパイプして (grep または awk がすべての作業を実行できない場合)、1 行だけで作業できますか? ここで重要なのは、最初にその 1 行を分離してから、そこから何かを抽出することを心配することだと思います。
「最初の単語」が「最初のスペースまでのすべて」を意味し、「この変更をファイル自体に保持する」とは、以前のファイルと同じ名前で新しいファイルを作成してもかまわないことを意味する場合、sed
をサポートするがある場合は、-i
おそらく次のようにすることができます。
sed -i '10s/ .*//' input-file
単語の定義をより制限したい場合は、次を使用できます'10s/\([a-z]*\).*/\1/'