替换分隔文件的第一个单词

时间:2017-05-05 10:55:42

标签: unix

我需要替换文件第一行的第一个单词 例如:在下面的'^'分隔文件中,我需要用PARA1替换HEADER1。

cat FILE.TXT
头1 ^ ^ HEADER2 ^ HEADER3 ^ HEADER4 ^ HEADER5
HEADER6 SUBHEADER1 ^ ^ SUBHEADER2 ^ SUBHEADER3 ^ SUBHEADER4 ^ SUBHEADER5 ^ SUBHEADER6 ^ SUBHEADER7 ^ SUBHEADER8 ^ SUBHEADER9 ^ SUBHEADER10 ^ SUBHEADER11 ^ SUBHEADER12
SUBHEADER13 10 ^ 56 ^ Q1 ^ Q1 ^ 95 ^ 02 ^ ^ ^ 4 ^ 20170501 ^ 20170501 ^ ABCD ^
20 ^ 56 ^ Q2 ^ Q2 ^ 95 ^ 02 ^ ^ ^ 4 ^ 20170502 ^ 20170502 ^ ABCD ^
30 ^ 56 ^ Q3 ^ Q3 ^ 95 ^ 02 ^ ^ ^ ^ ^ 20170503 ^ 20170503 ^ ABCD ^

我不想使用sed在文件&中找到HEADER1的第一个出现。替换它。
相反,它应该适用于第一行文件的第一个单词中的任何值。

任何建议都非常感谢。

感谢。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您不想使用sed,因为您认为它限制您用另一个字符串替换特定字符串? sed需要正则表达式,它允许您执行以下操作:

<link rel="stylesheet" href="//cdn.materialdesignicons.com/1.9.32/css/materialdesignicons.min.css">
<div class="privacy-select">
  <span class="display-ib">
   <span class="mdi mdi-earth"></span>
  <p>World</p>
  </span>

  <ul class="my-dropdown">
    <li>
      <span class="mdi mdi-account"></span>
      <p>Friend</p>
    </li>
    <li>
      <span class="mdi mdi-lock"></span>
      <p>Privacy</p>
    </li>
  </ul>
</div>

这将替换PARA1的输入的第一个单词(仅在第一行),假设单词由sed -e '1 s/^[^^]*/PARA1/' < /tmp/input.txt 分隔。