テキストファイルがあります。アクション - ファイルから最初の行と最後の行を取得する
$ cat file | grep -E "1|2|3|4" | commandtoprint
$ cat file
1
2
3
4
5
cat出力なしで必要です(1と5のみ)。
~$ cat file | tee >(head -n 1) >(wc -l)
1
2
3
4
5
5
1
たぶんawkとより短い解決策が存在するかもしれません...
ベストアンサー1
sed解決策:
sed -e 1b -e '$!d' file
で読むとき、stdin
次のような場合(例ps -ef
:):
ps -ef | sed -e 1b -e '$!d'
UID PID PPID C STIME TTY TIME CMD
root 1931 1837 0 20:05 pts/0 00:00:00 sed -e 1b -e $!d
頭と尾解決策:
(head -n1 && tail -n1) <file
データがコマンド(ps -ef
)から来る場合:
ps -ef 2>&1 | (head -n1 && tail -n1)
UID PID PPID C STIME TTY TIME CMD
root 2068 1837 0 20:13 pts/0 00:00:00 -bash
アッ解決策:
awk 'NR==1; END{print}' file
パイプラインの例もありますps -ef
。
ps -ef | awk 'NR==1; END{print}'
UID PID PPID C STIME TTY TIME CMD
root 1935 1837 0 20:07 pts/0 00:00:00 awk NR==1; END{print}