![UNIXファイルから最初の行と最後の行を除くすべての行を削除する方法は? [閉鎖]](https://linux33.com/image/82968/UNIX%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E6%9C%80%E5%88%9D%E3%81%AE%E8%A1%8C%E3%81%A8%E6%9C%80%E5%BE%8C%E3%81%AE%E8%A1%8C%E3%82%92%E9%99%A4%E3%81%8F%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
UNIXファイルのヘッダーとトレーラーレコードのみを保持したいと思います。
答え1
sedを使用してください:
sed -n '1p;$p' file
パターンスペース(-n
)の自動印刷を無効にしますが、パターンスペースの最初の行(1p
)と最後の行()を印刷します。$p
ファイルを「所定の位置に」編集するには、sedのoptionsを使用します-i
。
答え2
使用head
と:tail
head -n 1 file.txt; tail -n 1 file.txt
tail
正常に実行された場合head
:
head -n 1 file.txt && tail -n 1 file.txt
例:
% cat file.txt
foo
spam
egg
bar
% head -n 1 file.txt; tail -n 1 file.txt
foo
bar
% head -n 1 file.txt && tail -n 1 file.txt
foo
bar