シェルの最後の単語を削除する方法を探しています! 私はsedを使っていますが、どの行がどの行を削除するのか見つからないだけです。 exempleの場合 :私は、ファイルtest.dbというシェルの最後の単語を削除する
key1 value1
key2 value2
key3 value3
を持っていると私はちょうどすべての行の最後の単語を削除VALUE3
sed -i s/'\w*$'// test.db
にこの行を削除したいです!
シェルの最後の単語を削除する方法を探しています! 私はsedを使っていますが、どの行がどの行を削除するのか見つからないだけです。 exempleの場合 :私は、ファイルtest.dbというシェルの最後の単語を削除する
key1 value1
key2 value2
key3 value3
を持っていると私はちょうどすべての行の最後の単語を削除VALUE3
sed -i s/'\w*$'// test.db
にこの行を削除したいです!
これを試してみてください:
sed -i '1{s/[^ ]\+\s*$//}' file test.db
最初の行 –
は、あなたの行の最後の単語を削除
\ Sがどこにあるの行にkey3 value3
sed -i '/key3 value3/s/\S*$//' test.db
をターゲットにしているので、スペースや空白でない数字を表します。特定の行の最後の単語を削除
(原則)は
sed -i '/line pattern/s/\S*$//' test.db
ラインパターンを使用すると、
これはあなたのために働くかもしれないターゲットにしたいライン上で発見されたパターンを表し、 (GNU sed):
sed -r '$s/(\s*)\S+(\s*)$/\1\2/' file
最後の非スペーストークンを最後の行から削除しますエース)。ホワイトスペースを囲む取り除くだけでなく使用するには
:
sed -r '$s/\s*\S+\s*$//' file
ここでは、最後のフィールドを削除するawk
です:
echo "one two three" | awk '{$NF="";sub(/[ \t]+$/,"")}1'
one two
あなたからの最後の単語を削除する行を指定するにはどうすればよいですか? – lurker
jusあなたの行番号を指定します。たとえば、最初の行は次のようになります。sed -i 1s/'\ w * $' // test.db – tinySandy