質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

1回答

646閲覧

改行コード<CR>の次行の空白行<CRLF>を削除したい

YossyGG

総合スコア0

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2021/03/08 04:27

前提・実現したいこと

以下の通り、改行コードCRの次行のCRLF空白行が削除できません。

<>内は改行コード
◆テストデータ
TEST1<CRLF>
<CRLF>
TEST2<CR>
<CRLF>
TEST3<CRLF>
<CRLF>
TEST4<CRLF>

◆結果
TEST1<CRLF>
TEST2<CR>
<CRLF>
TEST3<CRLF>
TEST4<CRLF>

◆期待する結果
TEST1<CRLF>
TEST2<CR>
TEST3<CRLF>
TEST4<CRLF>

どのようにしたら、<CR>の次行の空白行<CRLF>を削除できるでしょうか?

●試しているコマンド
sed '/^\r?$/d' 入力ファイル > 出力ファイル

\は¥マークです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

sedが認識する改行はLFだけなので、あなたが実際にしたいのは、

plain

1TEST1<CR><LF> 2<CR><LF> 3TEST2<CR><CR><LF> 4TEST3<CR><LF> 5<CR><LF> 6TEST4<CR><LF> 78TEST1<CR><LF> 9TEST2<CR>TEST3<CR><LF> 10TEST4<CR><LF>

です。

sh

1sed '/^\r?$/d;/\r\r$/{N;s/\r\n//}'

投稿2021/03/08 04:55

編集2021/03/08 04:59
otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YossyGG

2021/03/08 05:07

すみません、実際にやってみると、標準出力しないで画面出力見ると、改行消えて見えるのですが、標準出力してみると、やはり、<CR>の次行の<CRLF>が削除されていません。
otn

2021/03/08 05:23

ファイルに書いて、16進表示してみるとか。 読めるなら、cat -v でもいいですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問