小编All*_*lan的帖子

使用sed插入换行符(\n)

我正在尝试将一些列表清理为格式正确的CSV文件以进行数据库导入.

我的起始文件看起来像是这样的,每个"线"跨越多行,如下所示

Mr. John Doe
Exclusively Stuff, 186 
Caravelle Drive, Ponte Vedra
33487. 
Run Code Online (Sandbox Code Playgroud)

我创建了一个sed清理文件的脚本(有很多"脏"格式,比如逗号之前/之后的双空格和空格). 问题是带有句号的Zip. 我想改变一个新行的那段时间,但我无法让它发挥作用.

我使用的命令是:

sed -E -f scrub.sed test.txt
Run Code Online (Sandbox Code Playgroud)

并且scrub.sed脚本如下:

:a
N
s|[[:space:]][[:space:]]| |g
s|,[[:space:]]|,|g
s|[[:space:]],|,|g
s|\n| |g
s|[[:space:]]([0-9]{5})\.|,FL,\1\n |g
$!ba
Run Code Online (Sandbox Code Playgroud)

我得到的是

Mr. John Doe,Exclusively Stuff,186 Caravelle Drive,Ponte Vedra,FL,33487n 
Run Code Online (Sandbox Code Playgroud)

如果认为Zip +.(句号)将是一个伟大的"分隔符"来使用替换,而我可以找到它,我似乎无法告诉它在那里放一个换行符.

我在网上找到的大部分内容都是用其他东西替换换行符(通常是删除换行符),但更换换行符并不多.我确实找到了这个,但它没有用: 如何在逗号后面插入换行字符`),(`用sed?

有什么我想念的吗?

更新:

我编辑了我的scrub.sed文件,将文字新行设为安装.它仍然无法正常工作

:a
N
s|[[:space:]][[:space:]]| |g
s|,[[:space:]]|,|g
s|[[:space:]],|,|g
s|\n| |g
s|[[:space:]]([0-9]{5})\.|,FL,\1\
|g
$!ba
Run Code Online (Sandbox Code Playgroud)

我得到的是(一线上的所有东西):

Mr. John Doe,Exclusively Stuff,186 Caravelle Drive,Ponte Vedra,FL,33487 Mrs. Jane Smith,Props and Stuff,123 Main Drive,Jacksonville,FL,336907  
Run Code Online (Sandbox Code Playgroud)

我的预期输出应该是: …

bash freebsd sed

12
推荐指数
2
解决办法
4万
查看次数

有没有办法根据自动换行拆分div?

我有一个相当简单的div,我用CSS设置了样式

.text { text-transform: capitalize;
        color: #FFFFFF;
        background: #918a8a;
        opacity: 0.6;
        font-size: 2em;
        height: 80px;
        width: 200px;
     }
Run Code Online (Sandbox Code Playgroud)

它基本上是一个带有一些白色文本的灰色框,尺寸为200px×80px.

我想要发生的是如果文本超过200px并包装到下一行,则添加一些透明的空格.

所以,例如,如果我有以下HTML:

<div class="text">Here is some text that I typed</div>
Run Code Online (Sandbox Code Playgroud)

我会得到这个:

示例图像

如果背景是不同的颜色(在本例中为蓝色),则"空白"将是透明的并允许蓝色通过.背景颜色取决于用户选择的内容.它也可能是一张图片,所以我无法确定它是什么.

示例图像2

假设文本超过200px大小并自动换行.没有两个单独的div标签.我也无法控制文本的长度 - 它可以是0到60个字符之间的任何位置.

html css

5
推荐指数
1
解决办法
122
查看次数

标签 统计

bash ×1

css ×1

freebsd ×1

html ×1

sed ×1