小编Igo*_*aic的帖子

将模式与前一行匹配的移动线

我有一个结构文件

12312
desc: bleh...
9938
desc: blah...
desc: bloh...
desc: blih...
desc: bluh...
9912
desc: blah...
Run Code Online (Sandbox Code Playgroud)

我想移动匹配模式"desc:"的行到前一行或删除行中的'\n',它在每个模式"desc:"之前.

期望的输出:

12312 desc: bleh...
9938 desc: blah... desc: bloh... desc: blih... desc: bluh... 
9912 desc: blah...
Run Code Online (Sandbox Code Playgroud)

我试过了

awk '!/desc:/{
 printf "%s ",$0
 getline
 printf "%s \n",$0
}
/desc/{print}' file
Run Code Online (Sandbox Code Playgroud)

没有结果.

实际上所有的数据都是输出,awk -F\" '{print $4 "\t" $6}' 也许我可以先做点什么?

bash awk sed

5
推荐指数
2
解决办法
3857
查看次数

如何使用 bash 和 sed 解析 html 标签属性

我有几个包含具有唯一子字符串的行的文件NAME-

      <input type="hidden" name="NAME-00B5JZ" value="350.378,00">
       <input type="hidden" name="NAME-0599" value="0,00">
       <input type="hidden" name="NAME-7012" value="0,00">
       <input type="hidden" name="NAME-0096" value="0,00">
       <input type="hidden" name="NAME-0433" value="0,00">
       <input type="hidden" name="NAME-1100" value="0,00">
Run Code Online (Sandbox Code Playgroud)

namevaluehtml 标签属性总是不同的。

我需要将制表符分隔的值放入单独的文件中,其名称与原始文件相对应。

00B5JZ 350378,00
0599 0,00
0096 0,00
0433 0,00
1100 0,00
Run Code Online (Sandbox Code Playgroud)

应从value的值中删除点

编辑:我决定编辑这篇文章,并为阅读本文的人提供另一种方法:

假设文件是file1.txt​​ , file2.txt,file3.txt当前目录中没有其他内容:

for f in file*txt; do cat ${f} | sed 's/^[[:space:]]*//;s/<input.*name="NAME-//;s/" value="/\t/;s/">//;s/\.//g' > ${f//\.txt/_out\.txt}; done
Run Code Online (Sandbox Code Playgroud)
  1. 首先我们得到所有文件名
  2. cat将它们一一传递给sed
  3. 删除行开头的所有空格
  4. name删除的值以内的所有内容
  5. 用制表符替换name's …

bash parsing sed

-2
推荐指数
1
解决办法
630
查看次数

标签 统计

bash ×2

sed ×2

awk ×1

parsing ×1