awk 替换行中的字符串

2023-12-21

笔记: 这个问题看起来像一个之前发过一篇 https://stackoverflow.com/questions/39273660/awk-sed-replace-in-each-line-with-previous-string-in-the-line/39273912#39273912,但正如评论中提到的,结果是变色龙问题。 https://meta.stackexchange.com/questions/43478/exit-strategies-for-chameleon-questions我接受了答案,并且我在这里发布了相同的问题,但“解决方案条件”略有不同。


我有一个文件test.txt像这样(但包含更多行)

/foo/bar/how /SOME_TEXT_HERE/hello
/foo/bar/are hello/SOME_OTHER_TEXT
/foo/bar/you hello

我想得到这个输出:

/foo/bar/how /SOME_TEXT_HERE/how
/foo/bar/are are/SOME_OTHER_TEXT
/foo/bar/you you

我已经尝试过这个:

while read line
do
bla=$(echo $line | cut -f4 -d"/" | cut -f1 -d" ")
sed -i "s/hello/$bla/" test.txt
done <test.txt

但输出是:

/foo/bar/how /SOME_TEXT_HERE/how
/foo/bar/are how/SOME_OTHER_TEXT
/foo/bar/you how

NOTE:

我想要的解决方案是:

  1. 让我定义一个变量(这里,bla),我将手动定义一个文件与另一个文件的不同(因此不使用基本字段位置之类的东西),而是使用cut或我的示例中的其他命令)

  2. 用此变量替换行中其他位置的特定字符串(因此不是像这样的字段位置$2,但确实像s/hello/$bla)

我不确定这是否可能(显然我不知道如何自己做到这一点......),但感谢您花时间尝试! :)


awk '{sub(/are hello/,"are are")sub(/you hello/,"you you")}1' file

/foo/bar/how /SOME_TEXT_HERE/hello
/foo/bar/are are/SOME_OTHER_TEXT
/foo/bar/you you
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk 替换行中的字符串 的相关文章

随机推荐

  • jquery 动画滚动顶部回调

    我有以下 jquery 将页面滚动到顶部 然后执行回调函数 问题是 即使页面已经位于顶部 它仍然会等待 1000 过去后再执行回调 这是我不希望的 html animate scrollTop 0 1000 swing function d
  • ng-init json 对象

    我使用 angularjs ng init 我想将值赋给变量作为 jsonObj 我尝试了这个 但它不起作用 ng init percentObj value 40 color F5A623 value 60 color F5A623 还有
  • 在嵌套 for 循环内创建小部件

    我无法访问内部 for 循环中的外部 for 循环计数器 关于如何做到这一点有什么想法吗 class buildsubcategories extends StatelessWidget List
  • 配置:错误:在 Linux Ubuntu 上为 Android 编译 python 时,C 编译器无法创建可执行文件

    几天前我已经为 android 文件夹创建了 python 但忘记包含一些模块 所以我只是想再做一次 这是 distribute sh 的结果 Python build finished but the necessary bits to
  • 如何使用 script/rails 生成添加新操作和视图?

    有什么方法可以为现有控制器生成新的操作和视图 我尝试对现有控制器执行以下操作 script rails 生成控制器帖子视图 where view是我想添加到控制器的新操作 我知道用手做这件事很简单 但我想知道这是我不知道或我梦想太多的事情
  • SQL:检查一个数字是否在多个范围内

    假设我们有 2 张桌子 Table Values Id Group Value A X 15 B Y 55 Table Ranges Group LowLimit HighLimit X 0 10 X 20 30 Y 30 40 Y 50
  • UITextView 末尾的省略号

    如果我有多行不可滚动的 UITextView 其文本长度超出了可见区域的容纳范围 那么文本就会像这样被切断 Congress shall make no law respecting an establishment of religion
  • 理解 scipy 反卷积

    我试图理解scipy signal deconvolve https docs scipy org doc scipy 0 15 0 reference generated scipy signal deconvolve html 从数学的
  • 当用户移动时在 Android 谷歌地图中绘制折线

    嘿 我是 Android 新手 我已经了解了 android 谷歌地图 我想跟踪用户移动并在 android 谷歌地图中实时绘制折线路径 有人可以帮助我这个例子吗 我可以获得位置变化间隔 但仍然不知道如何将其应用到折线并将数据 LatLng
  • 将 SQLite 数据库从一个版本升级到另一版本?

    我收到错误Logcat说某个专栏 在我的SQLiteOpenHelper子类 不存在 我以为我可以通过更改来升级数据库DATABASE CREATE细绳 但显然不是 那么我如何 逐步 将我的 SQLite 数据库从版本 1 升级到版本 2
  • 如何将 Interface Builder 与 Swift 结合使用?

    将 Swift 代码连接到 Storyboard 时 如何添加IBAction and IBOutlet tags Add IBAction and IBOutlet变量和函数的属性 以便它们在界面生成器中可见 class ViewCont
  • 如何在tensorflow中将float32 tiff图像解码为float32张量?

    我有一组采用 tif 格式的 float32 数据类型的输入图像 rgb 和图像目标 灰度 是否可以在tensorflow中将它们解码为float32张量 在写这篇评论时tfio experimental image decode tiff
  • 如何实现空格键的actionListener作为动作事件

    我将其设置为在计时器上不断更新 但我希望能够使用空格键暂停计时器 我尝试实现一个 actionListener 但我不确定将其应用于什么 我能找到的大多数示例都与按钮或文本框相关 而不是 jpanel 内的键盘按下 我已将 src 打印到控
  • 多个 Vue 应用程序,在 monorepo 中共享组件

    我们的系统有两种关键用户类型 我们希望将应用程序分解到单个存储库中的两个单独的文件夹中 那么我们的想法是拥有一个两个项目都可以使用的共享组件库 我正在寻找有关如何实现此类设置的最佳实践的一些指导 理想情况下我们可以满足以下条件 每个应用程序
  • 由于存在已知用于跨站脚本攻击的字符,因此禁止访问

    谁能告诉我以下 HTTP 错误消息来自哪里 由于存在已知用于跨站点脚本攻击的字符 因此禁止访问 此网站不允许 URL 中可能包含嵌入的 HTML 标记 我们使用动态生成的 URL 在这种特定情况下 URL 包含字符 我们对生成的 URL 进
  • 为什么 MSVC++11 拒绝函数的 constexpr 限定?

    因此 在尝试使用 constexpr 时 MSVC Visual Studio 2012 在尝试使用以下命令限定我的函数时出现了错误constexpr使用这个简单程序的关键字 包括省略 constexpr int factorial int
  • select() 似乎不适用于 TTY

    我目前正在编写一个程序 需要通过UART接口与AT接口通信 操作系统是Linux 但我在使用时遇到问题select 在文件描述符上 由于某种原因 select 不认为文件描述符已准备好读取 但为了缩小问题范围 我使用了以下程序 int ma
  • 无法推断出足够的有关 _ 的类型信息;需要类型注释或通用参数绑定

    trait Bar fn bar self enum Foo
  • 优化计算账户余额的 SQL 查询

    我有以下表格 分别是 BankDetails 和 Transactiondetails 使用这两个表 我想获取帐户名称的当前余额 Tables Create table Bankdetails AccName varchar 50 AccN
  • awk 替换行中的字符串

    笔记 这个问题看起来像一个之前发过一篇 https stackoverflow com questions 39273660 awk sed replace in each line with previous string in the