linux - 当行以“:”结尾时,在行尾添加某些字符
问题描述
我有一个文本文件,其中包含以下两种类型的条目:
398/GHJKI:/opt/Check/D1/test_1234
875/GHgbhn:/opt/Check/D1/test_1235
398/ANgbhn:
398/ABNHJ:/opt/Check/D1/test_1237
123/ANgbhn:
我想在“/opt/Check/D1/test_1237”不存在的行末尾添加NA,这意味着该行以“:”结尾。
请让我知道如何做到这一点。
我试着这样做
if grep -q "test" "/home/C1.txt"; then
awk '$0=$0"NA"' /home/C1.txt > /home/C2.txt
else
:
fi
但这会将 NA 添加到每一行..我想将 NA 添加到以“:”结尾的行
输出应如下所示:
398/GHJKI:/opt/Check/D1/test_1234
875/GHgbhn:/opt/Check/D1/test_1235
398/ANgbhn:NA
398/ABNHJ:/opt/Check/D1/test_1237
123/ANgbhn:NA
解决方案
你可以使用这个sed
:
sed 's/:$/&NA/' file
398/GHJKI:/opt/Check/D1/test_1234
875/GHgbhn:/opt/Check/D1/test_1235
398/ANgbhn:NA
398/ABNHJ:/opt/Check/D1/test_1237
123/ANgbhn:NA
这里:
:$
:
:在行尾之前匹配&NA
: 替换为原始匹配的字符串,即:
和NA
推荐阅读
- android - 如何防止在 Android 架构导航组件中多次打开同一个片段?
- python - 我想使用 discord.py 将语音发送到语音聊天
- r - 错误:无效的分组因子规范,主题
- c++ - 组织复杂的地图数据结构
- python - 将时间格式,字符串转换为浮点数
- r - 错误:`data` 和 `reference` 应该是相同级别的因素。使用confusionMatrix(插入符号)
- paypal - PayPal 支付 API 限制?
- jestjs - Next.js 单元测试与 jest --coverage 错误
- wordpress - 在每个 WooCommerce 产品上添加品牌徽标?
- phpstorm - PhpStorm:加载 xebug.so 失败