首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多行遗传图到单边线字符串,带有断线。

从多行遗传图到单边线字符串,带有断线。
EN

Unix & Linux用户
提问于 2018-01-27 01:14:12
回答 2查看 1.1K关注 0票数 2

我有一个多重遗传工具,我想把它转化成一个单边的字符串:

代码语言:javascript
复制
cat <<-"PHPCONF" > /etc/php/*/zz_overrides.ini
  [PHP]
  post_max_size = 200M
  upload_max_filesize = 200M
  cgi.fix_pathinfo = 0
PHPCONF

我能得到的最接近的数据如下:

代码语言:javascript
复制
cat >"/etc/php/*/zz_overrides.ini" <<< "[PHP] post_max_size = 200M upload_max_filesize = 200M cgi.fix_pathinfo = 0"

但我不认为在每个指令都有可能之后,line会中断,因为最终结果是一个字符串。也许到底有什么“非正统”的方式?

来文件和下面的字符串都是为了替换这个繁重的sed操作:

代码语言:javascript
复制
sed -i "s/post_max_size = .M/post_max_size = 200M/ ; s/upload_max_filesize = .M/upload_max_filesize = 200M/ ; s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/*/fpm/php.ini
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-01-27 13:32:13

撇开可以只使用printf "this\nthat\n" > /some/file这一事实不谈,您可以使用例如ANSI引用的换行符来生成这里的字符串:

代码语言:javascript
复制
$ cat <<< 此外,由于引号,这将尝试在一个名为*的目录中创建一个文件:cat > "/etc/php/*/zz_overrides.ini"这在Bash中是可行的,但是只有当glob匹配一个文件时(如果您有/etc/php/foo/zz_overrides.ini和/etc/php/bar/zz_overrides.ini,Bash会给出一个错误)。cat > /etc/php/*/zz_overrides.inithis\nthat'
this
that

此外,由于引号,这将尝试在一个名为D2的目录中创建一个文件:

A3

这在Bash中是可行的,但是只有当glob匹配一个文件时(如果您有D4D5,Bash会给出一个错误)。

A6

票数 4
EN

Unix & Linux用户

发布于 2018-01-27 12:42:28

我认为bash允许您直接使用带有换行符的字符串,而不需要一个本地文档,或者调用外部命令(如cat):

代码语言:javascript
复制
$ php_conf='
  [PHP]
  post_max_size = 200M
  upload_max_filesize = 200M
  cgi.fix_pathinfo = 0
'

$ echo "$php_conf"

 [PHP]
 post_max_size = 200M
 upload_max_filesize = 200M
 cgi.fix_pathinfo = 0
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/419964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档