linux - 使用 Linux 搜索字符串并以不同的顺序打印该行

标签 linux shell unix

我需要编写一个 shell 脚本来执行以下操作,我将在下面通过示例进行展示。

假设我有一个文件cars.txt,它描述了这样的表格 人|车|国家 '|'是分隔符。所以前两行是这样的

Michael|Ford|USA
Rahul|Maruti|India 

我必须编写一个 shell 脚本,它将在 cars.txt 文件中找到国家/地区为 USA 的行并将其打印出来

USA|Ford|Michael

我不太熟悉 Unix,所以我需要一些帮助。

最佳答案

这样可以吗?

while read -r i; do
  NAME="$(cut -d'|' -f1 <<<"$i")"
  MAKE="$(cut -d'|' -f2 <<<"$i")"
  COUNTRY="$(cut -d'|' -f3 <<<"$i")"
  echo "$COUNTRY|$MAKE|$NAME"
done < <(grep "USA$" cars.txt)

关于linux - 使用 Linux 搜索字符串并以不同的顺序打印该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846810/

相关文章:

regex - sed 提取两个字符串之间的文本

ios - 已辞职的 ipa 在 iOS 8 中安装但未在 iOS 9+ 中安装

unix - 用 vi(m) 复制最后一行之后的所有行

linux - 在文本文件的第一行之后添加定义的变量

c - __func 函数的约定是什么?

Linux 使用 "ln"命令链接

Android/Linux ioctl FIONREAD 失败

sql - 从 .import 插入 datetime()

c - 为什么 access(2) 检查真实的 UID 而不是有效的 UID?

linux - 元数据库返回被杀死