以前は実際の行の削除について質問し、良い回答を得ましたが、今では特定の列から特定の行番号の下のすべての行を削除する方法を知りたいです。他のすべての列と行は変更されていないままにしてください。
ボーナスで削除された特定のスペースに別の列を貼り付けまたは印刷する方法もあります。
はい(タブで区切られた列) - 列 1 でのみ行 2 とその下のすべての行を削除し、1 列を左に移動して行 2 と列 3 を行 2 から下に移動します。
入力する:
hunkey dorey pringle
jungley fevery jingles
freshly cutting jackle
Queen Kingly Squire
出力:
hunkey dorey pringle
fevery jingles
cutting jackle
Kingly Squire
答え1
awk
解決策。
awk '{if(NR>1){$1="";sub(" ","")}}1'
答え2
sed 'N,$s/^[^ ]\+[ ]\+//'
ここで、Nは最初の列が失われた最初の行の行番号です。
答え3
GNU sedの使用:
sed '2,$ s/[^\t]*\t//' file
持ち運べる:
tab=$(printf '\t')
sed '2,$ s/[^'"$tab"']*'"$tab"'//' file
- 2. $ 2行目から最後の行まで
- s/[^\t]*\t//タブ文字を除くすべての文字を、次のタブ文字(最初のタブ文字)に置き換えます。