次のようなタブ区切りファイルがあります。
name1 verb1 name2 verb2 etc...
2番目の列を削除します。これらの回答の 1つを編集してみましたが、sed
とawk
に詳しくないため、できませんでした。
誰も私を助けることができますか?
x
て削除します)?
次のようなタブ区切りファイルがあります。
name1 verb1 name2 verb2 etc...
2番目の列を削除します。これらの回答の 1つを編集してみましたが、sed
とawk
に詳しくないため、できませんでした。
誰も私を助けることができますか?
x
て削除します)?
回答:
受け入れられた答えはこれよりはるかにエレガントです(私はそれを支持しました!)覚えていない場合は、vim
視覚ブロックモードを直接使用できます。vimを開き、次のように(通常モード)列の最初の隅に移動します。
入力するCTRL-V
と、カーソルを移動して列を選択できます。これは途中です。
最後に進むには、を押しG
ます。
空白の最後の行にいるため、ブロックが壊れているようです。単純に1行上に移動して(上矢印またはk
)、もう一度表示します...
今、あなたは単にx
ブロックを削除するために押します:
私はcut
これに使用します
cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt
これをvim内のフィルターとして使用することもできます(これにより、ファイル内のすべての行が置き換えられます。2-9行目を処理する2,9
代わりに(たとえば)を使用し%
たり、必要な行を選択することもできますV
)。
:%!cut -f1,3-
-f1,3-
「フィールド1を印刷し、その後にフィールド3と行の終わりまでのすべてのフィールドを印刷する」ことを意味します。デフォルトでcut
は、タブを区切り文字として使用します。他の何かが必要な場合は、-d
オプションを使用してください(を参照man cut
)。
次のいずれかを試すことができます。
:%norm WdW
または視覚モードを使用して手動で:
コマンドラインからインプレースで実行するには、次を試してください:
$ ex +':exe ":%norm f\<Tab>dE"' -scx file
こちらもご覧ください: