タグ付けされた質問 「newlines」

1
シバンラインがcr-lfで機能しない
次の基本スクリプトのシバン部分が機能しないのはなぜですか。 $ cat hello.sh #! /bin/sh echo Hello $ ./hello.sh bash: ./hello.sh: /bin/sh^M: bad interpreter: No such file or directory $ cat hello.py #! /usr/bin/env python3 print("Hello") $ ./hello.py : No such file or directory 一方、インタプリタを手動で呼び出すことは機能しています: $ sh hello.sh Hello $ python3 hello.py Hello

1
エコーコマンドによるキャリッジリターン
\r以下のようにオプション(復帰)付きのエコーコマンドを練習していました。 echo -e "This is \r my college" 出力: my college \r次のように前に単語をもう1つ追加すると echo -e "This is the \r my college" 次に、次のような出力が得られます。 my college the もう一つの例 echo -e "This is \r valid data" valid data echo -e "This is not a \r valid data" valid data a それで、ここで改行の実際の目的は何ですか?
9 shell  echo  newlines 

4
最後に空の行がないファイルを見つける方法は?
現在のディレクトリのサブディレクトリにファイルがあり、最後に改行がある場合とない場合があります。末尾に改行がないファイルを見つけるにはどうすればよいですか? 私はこれを試しました: find . -name '*.styl' | while read file; do awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file; done しかし、それは機能しません。 awk 'END{print}' $fileと同じように、空の新しい行の前に行を出力しtail -n 1 $fileます。

2
sed:単一行の入力で失敗することなく、ファイル全体をパターンスペースに読み込みます
ファイル全体をパターンスペースに読み込むことは、改行を置き換える場合に便利です&c。そして、次のことを助言する多くのインスタンスがあります: sed ':a;N;$!ba; [commands...]' ただし、入力に1行しか含まれていない場合は失敗します。 例として、2行入力の場合、すべての行が置換コマンドの影響を受けます。 $ echo $'abc\ncat' | sed ':a;N;$!ba; s/a/xxx/g' xxxbc cxxxt ただし、1行入力の場合、置換は実行されません。 $ echo 'abc' | sed ':a;N;$!ba; s/a/xxx/g' abc sed一度にすべての入力を読み取るコマンドを記述して、この問題を回避するにはどうすればよいですか?
9 sed  newlines 

6
猫のワイルドカード印刷で改行を強制する
複数の小さなファイル(すべてのファイルが1文)を標準出力に出力するために、bashでワイルドカードを使用した猫を使用したいと思います。ただし、個別のファイルの内容は改行で区切られていません。読みやすくするために改行します。 このコマンドにある種のファイル区切り文字を追加するにはどうすればよいですか?

3
末尾の改行を削除せずにstdinを変数にキャプチャするにはどうすればよいですか?
シェルスクリプトで... 末尾の改行を削除せずにstdinを変数にキャプチャするにはどうすればよいですか? 今私は試しました: var=`cat` var=`tee` var=$(tee) すべての場合$varにおいて、入力ストリームの末尾の改行はありません。ありがとう。 また、入力に後続の改行がない場合、ソリューションは追加しません。 承認された回答に照らして更新: 私のコードで使用した最終的な解決策は次のとおりです。 function filter() { #do lots of sed operations #see https://github.com/gistya/expandr for full code } GIT_INPUT=`cat; echo x` FILTERED_OUTPUT=$(printf '%s' "$GIT_INPUT" | filter) FILTERED_OUTPUT=${FILTERED_OUTPUT%x} printf '%s' "$FILTERED_OUTPUT" 完全なコードを確認したい場合は、エキスパンダーのgithubページを参照してください。エキスパンダーは、情報セキュリティの目的で開発した小さなオープンソースのgitキーワード展開フィルターシェルスクリプトです。.gitattributesファイル(ブランチ固有にすることができます)およびgit configで設定されたルールに従って、git は、リポジトリにチェックインまたはチェックアウトするたびに、expandr.shシェルスクリプトを介して各ファイルをパイプ処理します。(そのため、末尾の改行またはその欠如を保持することが重要でした。)これにより、機密情報をクレンジングし、テスト、ステージング、およびライブブランチの環境固有の値の異なるセットを交換できます。

1
vimの挿入モードで2つの異なるファイルの違いが表示されないのはなぜですか?
2つのファイルを作成しましょう: $ echo -n 'test' > test.txt $ wc test.txt 0 1 4 test.txt ファイルにtest.txtは、末尾の改行が含まれていません。 $ echo 'test' > test_n.txt $ wc test_n.txt 1 1 5 test_n.txt ファイルにtest_n.txtは、末尾の改行が含まれています。 上記の2つのファイルは明らかに異なりますがvim、挿入モードの両方のファイルのプレビューには違いがありません。 $ vim test.txt $ vim test_n.txt なぜ違いがないのですか(改行または特別な区別)? そしてvim、挿入モードでそのような追加の文字を追加または削除するにはどうすればよいですか?
8 vim  newlines  vi-mode 

2
変数に改行が含まれているかどうかをテストします(POSIX)
一部のシェルはこの種のテストを受け入れることを知っています: t() { [[ $var == *$'\n'* ]] && res=yes || res=no printf '%s ' "$res"; } var='ab cd' t var='abcd' t echo 実行時: $ bash ./script yes no POSIX(ダッシュ)と同等の機能とは 以下は信頼できるテスト方法ですか? nl=' ' t() { case "$var" in *$nl* ) res=yes ;; * ) res=no ;; esac printf '%s ' …

2
読み取り-a配列-d '\ n' <foo、終了コード1
実行しようとすると read -a fooArr -d '\n' &lt; bar 終了コードは1です-私が望んでいることを達成したとしても; の各行をbar配列の要素に入れますfooArr(bash 4.2.37を使用)。 なぜこれが起こっているのか誰かが説明できますか 私はこれを解決する他の方法を見つけました、以下のようなので、それは私が求めているものではありません。 for ((i=1;; i++)); do read "fooArr$i" || break; done &lt; bar または mapfile -t fooArr &lt; bar
8 bash  newlines  read 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.