web-dev-qa-db-ja.com

テキストファイルのすべての行を引用符で囲みます(「何か」)

スペースを含むディレクトリのリストがあります。

バッチスクリプトが機能するように、それらを ''で囲む必要があります。

新しい行をそれぞれ「」と「」(引用符)で囲むにはどうすればよいですか。

例えば.

ファイル1:

/home/user/some type of file with spaces
/home/user/another type of file with spaces

File2:

'/home/user/some type of file with spaces'
'/home/user/another type of file with spaces'
24
user191960

Sedを使用しますか?

sed -e "s/\(.*\)/'\1'/"

または、以下にコメントするように、ディレクトリにアポストロフィが含まれている可能性がある場合(含まれている場合は悪夢)、この代替手段を使用します

sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/"
34
martin clayton

Sedの使用:

sed -i "s/^.*$/'&'/g" filename
6
Adam Bard

sed(1) を使用して、ファイルの各行の最初と最後に一重引用符を挿入できます。

sed -i~ -e "s/^/'/;s/$/'/" the_file
3
Adam Rosenfield

非常に単純なロジックで、引用符を前後にエコーする必要があります。

while read -r line
do
  echo "'$line'"
  # do something
done < "file"
2
ghostdog74