![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.8
- 回答日時:
すでに ed を使ったエレガントな解が示されていますが,もう一度自分の回答を添削しておきます.
head -$(( `wc -l < sample.txt` - 8 )) sample.txt | tail +7
くどくてすみません.
いえいえ、ありがとうございます。
ついでに、他の方にも参考になるように解説させていただきます。
お題:ヘッダ 6行とフッダ8行を取り除く
回答:head -$(( `wc -l < sample.txt` - 8 )) sample.txt | tail +7
wc -l sample.txt | sed s/sample.txt//
wcの結果でファイル名"sample.txt"が出力されてしまうのでそれを切り捨てしているのですね。
さらにこの部分は
wc -l < sample.txt
とすることで、よりスマートになると。
(ありがとうございます!ほかで
wc -l $source | cut -b 3-8
とやって切り捨ていたので使わせていただきます!)
それで、
$(( `wc -l < sample.txt` - 8 ))
の部分が
sample.txtの行数-8
と計算されて(sh系でないと動かないみたいですね)
head -n sample.txt
のようになり、sample.txtの上からn行(ヘッダ+ボディ)が出力されると。 最後に
head -n sample.txt | tail +7
で、7行目より下を出力する(ボディを取り除く)と。
計算ができると知らなかったので、とても勉強になりました。
どうもありがとうございました!
No.5
- 回答日時:
tac というのは初めて知りました.便利ですね.
これだけシンプルな解が示されているのに,あえて tac を使わないなら,
一応以下でできます.(泥くさいですが)
あ,bash 固有の機能を使ってます.tcsh とかなら無視して下さい.
ヘッダ 6行とフッダ8行を取り除く.
head -$(( `wc -l sample.txt | sed 's/sample.txt'//` - 8 )) sample.txt |tail +7
でも,この際 tac を含めて,gnu textutils をインストールしたらいかがでしょうか?
ご回答ありがとうございます。
こういった回答は応用的な勉強ができるので
大変参考になります!
どうもありがとうございます!
#残念ながら、あえて使わないのではなく、残念ながらインストールできないのですよ。。。
#お客さんの業務マシンなもので。
No.2
- 回答日時:
お詫び。
あとで質問をよく読み直したんですけど、
>ヘッダとフッターをカットしたいのですが、
ヘッダとフッターを切り捨てたいのではなく、
ヘッダとフッターを取り出してくっつけたいという質問ですね?
#1はその逆(中を取り出す方法)なのでまちがってました。
この回答への補足
大変申し訳ございません。
aix,FreeBSDのman,「UNIXの部屋」でtacを調べて載っていなかったので質問させていただいたのですが、教えていただいていましたね。大変申し訳ございません。早とちりしてしまいました。
また、再度「man tail」を実行したところ、オプションの説明ではなく、読み流していた本文に「+」についての記述を確認できました。大変すみませんでした。
目的のことは、教えていただいた
tail +3 ファイル名
でヘッダの切り捨てできました。
あとは、フッタを切り捨てたいのですが・・・。
よろしくお願いします。
ご回答ありがとうございます。
すみません。「カットしたい」というのは「捨てたい」と言うことです。
日本語って難しいですね。(^^;
各種レポートのヘッダとフッターを捨てたいのです。
テキストの先頭n行目から後ろm行目までを取得したいのです。
「head -n 3 hogehoge.txt > 3.txt
これで先頭3行目をとれますが、このあとです。」
これは完全ボケていました。すみません。。。
手元にはtacというコマンドがないのですが、これはどういうコマンドなのでしょうか?また、このコマンドをしようぜずに実現したいのですが、可能でしょうか?
よろしくお願いします。
No.1
- 回答日時:
たとえばテキストファイルの先頭2行と、後ろ3行を取り除くときは
tail +3 ファイル名 | tac | tail +4 | tac
こんな感じで処理してますが、こういう事がしたいのですか?
ちなみにtacはcatコマンドを反転して出力するコマンドです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- 簿記検定・漢字検定・秘書検定 簿記検定3級について 最近、簿記の3級の資格を取ろうと思っているのですが、基本の説明+基本問題が1個 1 2022/10/02 12:49
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- PDF PDF作成ファイルの不具合の件 5 2022/08/15 15:00
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
euctosj を使用してファイル名...
-
renameコマンドでファイル名か...
-
CentOS/リダイレクションに改行...
-
Dirコマンドでフォルダ内ファイ...
-
父子家庭、 子供の進学費用を全...
-
エクセルの表にヘンな枠が・・・
-
SONYの音楽ソフト「x-アプリ」...
-
至急です、Ubuntuに詳しい方助...
-
Linux(Fedora)で外付けHDDが...
-
TOPコマンドで表示するCPU使用...
-
ファイル名についている「-」と...
-
batである文字列内に特定の文字...
-
UNIX コマンドにおける # や円...
-
pingは正常なのにtracerouteで...
-
bashでシングルクォート内の変...
-
スクリプトのエラー「unexpecte...
-
tar.bz2ファイルのインストール...
-
ラズパイで『’test.service’をs...
-
Linux環境 grepで改行コード(CR...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
バッチで特定文字が含まれる先...
-
*.txtファイルの最終行だけ参照...
-
【DOSコマンド】for文の中で変...
-
【Linux】findコマンドの表示順
-
Linuxで*をつかってファイル移...
-
○行目から□行目だけを表示する...
-
UNIXで、ディレクトリを比較し...
-
renameコマンドでファイル名か...
-
CentOS/リダイレクションに改行...
-
OSXで常に最後に表示される文字...
-
スラッシュ"/"を削除したい
-
標準出力とリダイレクトを同時...
-
ショートカットのリンク先(フ...
-
unixのdiffコマンドの動作について
-
windows7でmingwのgrepで漢字の...
-
euctosj を使用してファイル名...
-
ファイルの先頭に文字を追加す...
-
killコマンド実行時のメッセー...
-
コマンドプロンプト net user...
おすすめ情報